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的,能不能给点建议?今天我是打算来点干 ...
随机推荐
- mybatis-动态sql-trim、where、set
1. where标签的作用:如果该标签包含的元素中有返回值,就插入一个where:如果where后面的字符是以AND和OR开头的,就讲他们剔除. int findUserByWhere(@Param( ...
- VS的快捷操作
连按两下Tab,生成代码块.修改i为n,再按一次Tab,对应位置自动改变. Ctrl+. 或者 Alt+Enter ctor 连按两下Tab,生成无返回值的构造函数(constructor func ...
- jquery trigger() 方法 语法
jquery trigger() 方法 语法 作用:trigger() 方法触发被选元素的指定事件类型.深圳大理石平台 触发事件:规定被选元素要触发的事件. 语法:$(selector).trigge ...
- vue 项目实战之小坑坑
1. Vue 多个元素动画 ,需要使用 transition-group 标签,并且需要赋值 唯一 key 值. 2. 用ajax 获取到数据赋值给data 后 ,再手动向data里添加的属性无效. ...
- LA 4223 最短路 路径选择要求提高一点
F - Trucking Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu Submit Statu ...
- JavaWeb_(Struts2框架)使用Struts框架实现用户的登陆
JavaWeb_(Struts2框架)使用Servlet实现用户的登陆 传送门 JavaWeb_(Struts2框架)Servlet与Struts区别 传送门 MySQL数据库中存在Gary用户,密码 ...
- 异常处理(Exception Handling)
java里的异常处理(Exception)Exception 是在程序执行过程中发生的一些不希望发生的事情,这些事情如果不被好好处理,就会导致奇怪的结果或者是程序终结.Exception Handle ...
- Function和Object 应该知道的
javascript有5种基础的内建对象(Fundamental Objects),Object.Function.Error.Symbol.Boolean,而Object/Function尤为特殊, ...
- 面试准备一个访问一个URL的过程简版
客户端获取URL - > DNS解析 - > TCP连接 - >发送HTTP请求 - >服务器处理请求 - >返回报文 - >浏览器解析渲染页面 - > TC ...
- 【软件工程】Alpha冲刺(2/6)
链接部分 队名:女生都队 组长博客: 博客链接 作业博客:博客链接 小组内容 恩泽(组长) 过去两天完成了哪些任务 描述 了解了如何根据系统获取的实际情况进行后端任务的调整 网易云音乐推荐算法的分析 ...