Java的事件处理机制之计算器实例
来源:互联网 发布:河北中标数据网 编辑:程序博客网 时间:2024/06/05 00:44
CalcFrame.java
package jsj.java.exam.test10;import java.awt.Dimension;import java.awt.Font;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JComponent;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextField;//知识要求:理解 应用/** * 计算器窗体类 * 分值 10分 */public class CalcFrame extends JFrame {public static final int WIDTH = 600;public static final int HEIGHT = 100;private JTextField firstNumber;private JTextField secondNumber;private JTextField result;private JComboBox operator;/** * 完成计算器界面的设计 */public CalcFrame() {this.setTitle("小小计算器");// 直接调用从父类继承下来的方法,设置窗口的标题Toolkit toolkit = Toolkit.getDefaultToolkit();// 得到本机默认的工具包Dimension d = toolkit.getScreenSize();// 获取屏幕的尺寸this.setSize(WIDTH, HEIGHT);// 设置容器的宽度和高度this.setLocation((d.width - WIDTH) / 2, (d.height - HEIGHT) / 2);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 设置关闭按钮时退出程序JLabel prompt = new JLabel("考考你");// 创建标签setCharacter(prompt);JPanel centerPanel = new JPanel();// 创建子容器,默认的布局为FlowLayoutfirstNumber = new JTextField(10);setCharacter(firstNumber);String[] op = { "+", "-", "*", "/" };operator = new JComboBox(op);// 初始化下拉列表setCharacter(operator);secondNumber = new JTextField(10);setCharacter(secondNumber);//创建等号按钮JButton equal = new JButton(" = ");setCharacter(equal);//TODO监听等号按钮上的事件,当用户按下此按钮时,进行相应的+-*/处理//可以采用内部类或者匿名内部类的形式实现,可以调用下面的compute()方法equal.addActionListener(new ActionListener() {//--4@Overridepublic void actionPerformed(ActionEvent e) {//--2compute();//--2}});result = new JTextField(15);// 存放结果的文本框setCharacter(result);centerPanel.add(firstNumber);centerPanel.add(operator);centerPanel.add(secondNumber);centerPanel.add(equal);centerPanel.add(result);this.add(prompt, "North");// this.add(prompt,BorderLayout.NORTH);这种方式也可以this.add(centerPanel);// 默认添加到中央区域this.pack();// 紧凑排列组件//TODO 设置窗体的可见性this.setVisible(true);//--2} public void setCharacter(JComponent c) {c.setFont(new Font("黑体", Font.BOLD, 20));}/** * 进行运算的方法 */private void compute() {String first = firstNumber.getText();String second = secondNumber.getText();int firstNum = Integer.parseInt(first);int secondNum = Integer.parseInt(second);char op = ((String) (operator.getSelectedItem())).charAt(0);CalcBiz calcBiz = new CalcBiz ();String results = calcBiz.calculate(firstNum, secondNum, op);result.setText(results);}public static void main(String[] args) {CalcFrame calcFrame=new CalcFrame();}}
CalcBiz.java
package bzu.java.exam.test10;/** * 计算器的功能。 */public class CalcBiz {public String calculate(int firstNumber,int secondNumber,char op){String result=" ";switch(op){case '+':result=result+(firstNumber+secondNumber);break;case '-':result=result+(firstNumber-secondNumber);break;case '*':result=result+(firstNumber*secondNumber);break;case '/':if(secondNumber!=0) result=result+(firstNumber/secondNumber); else result=result+"除数不能为0";}return result;}}
- Java的事件处理机制之计算器实例
- 【末世旅行之Java】Java事件处理机制的学习
- java的事件处理机制
- Java的事件处理机制
- Java的事件处理机制
- java 的事件处理机制
- Java的事件处理机制
- JAVA的事件处理机制
- Java的事件处理机制
- java的事件处理机制
- Java的事件处理机制
- Event事件处理机制的实例应用
- 事件处理机制之基于监听的事件处理机制
- java 事件处理机制
- JAVA事件处理机制
- JAVA事件处理机制
- java事件处理机制
- Java事件处理机制
- 瀑布流布局浅析
- objective-c 和c++ 混合编程
- Unity声音 Sound (圣典篇)
- ubuntu 下安装jdk
- ps制作文字
- Java的事件处理机制之计算器实例
- strncat源码
- PHP面向对象的程序设计(概述)
- 2012年终总结
- MySql安装图解
- LeetCode Add Binary
- scikit-learn: machine learning in Python系列(一)
- Apache 在 localhost 为不同端口配置虚拟主机(不同端口测试不同网站)
- 图灵