java初学者编译简单的计算机
package com.yj.test; import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField; public class CaculateFrame extends JFrame{ private JPanel content,panel;
private JTextField txtInput;
//记录运算符操作
private String operation;
private double v1,v2,result;
// 一次计算的开关
private boolean flag = false; public CaculateFrame() {
this.setTitle("计算器");
//设置位置和大小
this.setBounds(300, 200, 300, 300); txtInput = new JTextField(20);
txtInput.setHorizontalAlignment(JTextField.RIGHT);
Font f = new Font("微软雅黑",Font.BOLD,20);
txtInput.setFont(f); content = new JPanel();
content.setLayout(new BorderLayout()); content.add(txtInput,BorderLayout.NORTH); panel = new JPanel();
panel.setLayout(new GridLayout(4,4,5,5)); panel.add(useButton("7"));
panel.add(useButton("8"));
panel.add(useButton("9"));
panel.add(useButton("/")); panel.add(useButton("4"));
panel.add(useButton("5"));
panel.add(useButton("6"));
panel.add(useButton("*")); panel.add(useButton("1"));
panel.add(useButton("2"));
panel.add(useButton("3"));
panel.add(useButton("-")); panel.add(useButton("0"));
panel.add(useButton("."));
panel.add(useButton("="));
panel.add(useButton("+")); content.add(panel,BorderLayout.CENTER);
this.add(content);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private JButton useButton(String key) {
JButton btn = new JButton(key);
btn.addActionListener(new ActionListener() {
//事件是由哪个控件发出的,通通都记录在ActionEvent这个对象中
public void actionPerformed(ActionEvent e) {
//根据按钮上面不同的值,应该做不同的操作
myAction(key);
}
});
return btn;
} private void myAction(String key) {
if(flag) {
txtInput.setText("");
flag = false;
}
switch(key) {
case "0":
case "1":
case "2":
case "3":
case "4":
case "5":
case "6":
case "7":
case "8":
case "9":
case ".":
if(txtInput.getText() == null || txtInput.getText().equals("")) {
if(key.equals("0")) {
return;
}
if(key.equals(".")) {
txtInput.setText("0.");
return;
}
}if(txtInput.getText().indexOf(".") != -1 && key.equals(".")) {
return;
}
txtInput.setText(txtInput.getText() + key);
break;
case "+":
this.operation = "+"; if(txtInput.getText() == null || txtInput.getText().equals("")) {
v1 = 0;
}else {
//转换为double类型
v1 = Double.parseDouble(txtInput.getText());
}
txtInput.setText("");
break;
case "-":
this.operation = "-";
if(txtInput.getText() == null || txtInput.getText().equals("")) {
v1 = 0;
}else {
//转换为double类型
v1 = Double.parseDouble(txtInput.getText());
}
txtInput.setText("");
break;
case "*":
this.operation = "*";
if(txtInput.getText() == null || txtInput.getText().equals("")) {
v1 = 0;
}else {
//转换为double类型
v1 = Double.parseDouble(txtInput.getText());
}
txtInput.setText("");
break;
case "/":
this.operation = "/";
if(txtInput.getText() == null || txtInput.getText().equals("")) {
v1 = 0;
}else {
//转换为double类型
v1 = Double.parseDouble(txtInput.getText());
}
txtInput.setText("");
break;
case "=":
if(txtInput.getText() == null || txtInput.getText().equals("")) {
v2 = 0;
}else {
//转换为double类型
v2 = Double.parseDouble(txtInput.getText());
}
switch(this.operation) {
case "+":
result = v1 + v2;
break;
case "-":
result = v1 - v2;
break;
case "*":
result = v1 * v2;
break;
case "/":
if (v2 == 0) {
return;
}
result = v1 / v2;
break;
}
txtInput.setText(String.valueOf(result));
v1 = 0;
v2 = 0;
result = 0;
flag = true;
}
}
}
计算机测试显示窗口 :
package com.yj.test;
public class Test {
public static void main(String[] args) {
CaculateFrame cf = new CaculateFrame();
cf.setVisible(true);
}
}
java初学者编译简单的计算机的更多相关文章
- Java初学者作业——简单程序根据用户输入的会员类型以及购物金额,判断是否能够享受活动优惠
返回本章节 返回作业目录 需求说明: 超市周年庆举行购物满减活动,编写Java程序,根据用户输入的会员类型以及购物金额,判断是否能够享受活动优惠,会员类型的输入不限制大小写.具体获取规则:若为VIP会 ...
- Java初学者 编译能通过,但显示有错误,并且不会自动弹出方法的解决方法。
因为使用了 @Data注解,关于注解的作用尚未深入理解,此处先做一个记录. 解决方法是,添加lombok插件
- JAVA 文件编译执行与虚拟机(JVM)简单介绍
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytpo3 java程序的内存分配 JAVA 文件编译执行与虚拟机(JVM)介绍 ...
- 利用 Docker 构建一个简单的 java 开发编译环境
目前 Java 语言的版本很多,除了常用的 Java 8,有一些遗留项目可能使用了 Java 7,也可能有一些比较新的的项目使用了 Java 10 以上的版本.如果想切换自己本地的 Java 开发环境 ...
- 一个牛人给Java初学者的建议
学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:618528494 我们一起学Java! 给初学者之一:浅谈Java及应用学java ...
- 一位资深程序员大牛给予Java初学者的学习路线建议
java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是我你是如何学习Java的,能不能给点建议?今天我是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈 ...
- 对Java初学者的忠告
1) 适合自己的图书才是最好的,最好的书并不一定适合你,看自己的情况. 如果你是一个Java初学者一上手就捧一本Thinking in Java在手里,我想你的日子是不会好过的,那样的书给有一定基础的 ...
- java初学者必看经典
配置java环境变量: JAVA_HOME:配置JDK的目录 CLASSPATH:指定到哪里去找运行时需要用到的类代码(字节码) PATH:指定可执行程序的位置 LINUX系统(在" .ba ...
- 一位资深程序员给予Java初学者的学习路线建议
一位资深程序员给予Java初学者的学习路线建议 java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是我你是如何学习Java的,能不能给点建议?今天我是打算来点干 ...
随机推荐
- C# socket异步通讯
Server: using System; using System.Net; using System.Net.Sockets; using System.Text; namespace TCP_S ...
- php回顾(3)系统函数
abs() 绝对值 ceil() 向上取整 floor() 向下取整 round() 四舍五入 第二个参数:保留小数点后面几位 ...
- Linux安装—IP设置
IP设置 务必不要把Linux的IP设置为和我们的真实机位于同一网段(这可能会跟其他机器造成冲突) 具体操作是:在安装虚拟机时Network Type设置选择:Use Host-Only networ ...
- poj 3050 Hopscotch DFS+暴力搜索+set容器
Hopscotch Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 2774 Accepted: 1940 Description ...
- sh_15_字符串统计操作
sh_15_字符串统计操作 hello_str = "hello hello" # 1. 统计字符串长度 print(len(hello_str)) # 2. 统计某一个小(子)字 ...
- [笔记]共享内存(shm)
一.特点 共享内存允许多个不同的进程可以访问同一块内存.相较于其他IPC形式,具有速度快,效率高的特点,共享内存的存在降低了在大规模数据处理过程中内存的消耗. 二.创建共享内存 1.头文件 #incl ...
- AIDL 的工作原理
当创建AIDL文件并Clean Project 代码后,会生成相应的Java文件: 先来一段伪代码:类整体结构 /* * This file is auto-generated. DO NOT MOD ...
- mvp解读
mvp存在的问题 1.业务复杂时,可能使得Activity变成更加复杂,比如要实现N个IView,然后写更多个模版方法. 2.业务复杂时,各个角色之间通信会变得很冗长和复杂,回调链过长. 3.Pres ...
- apt 软件安装问题
1.sudo apt-get update由于没有公钥,无法验证下列签名: NO_PUBKEY F42ED6FBAB17C654 解决方法:安装公钥 sudo apt-key adv --keyser ...
- 解决autowaired注入时机问题
package com.haiyisoft.loveLifeWeb.config; import javax.annotation.PostConstruct; import org.springfr ...