计算器"/>
用JAVA写的一个简单的图形界面计算器
一个简单的计算器,老师布置的作业。
用的swing和awt,bug还是有的,想起来了,发上来,自己留着收藏。
/*** Created by YunFeng on 2014/12/6 0009.* Student Number:* Teacher:Yongfeng Huang
* University:DHU*Java's homework of No,7 weekend;*/ import java.awt.*; import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener;public class ICalculator {public static void main(String args[]){WinGrid ICalc = new WinGrid();ICalc.setTitle("计算器1.0");//程序标题 } }class WinGrid extends JFrame {JPanel calc, screen;//创建两个面板,放置按键和显示器JButton[] buttons = new JButton[16];//创建16个按键JButton clear = new JButton("CE");//创建清除键JTextField screen_txt = new JTextField("0");//创建显示器String[] str = {"7", "8", "9", "+", "4", "5", "6","-", "1", "2", "3", "*", "0", ".", "=", "/"};//计算器的按钮double result = 0;//结果boolean IsClick = false;//是否点击过char operator = '=';//操作符boolean IsPoint = false;//输入的是否是小数点 NumberListener numberListener = new NumberListener();//创建一个数字监视器OperatorListener operatorListener = new OperatorListener();//创建一个操作符监视器ClearListener clearListener = new ClearListener();//创建一个清零操作监视器 WinGrid() {calc = new JPanel(new GridLayout(4, 4));screen = new JPanel(new BorderLayout());/*以上为初始化两个面板布局*/for (int i = 0; i < 16; i++) {buttons[i] = new JButton(str[i]);if (i == 3 || i == 7 || i == 11 || i == 14 || i == 15) {buttons[i].addActionListener(operatorListener);//操作符注册操作符的监视器} elsebuttons[i].addActionListener(numberListener);//数字及小数点注册数字的监视器 calc.add(buttons[i]);}//将按钮添加到操作面板clear.addActionListener(clearListener);//注册清零监视器screen.add(screen_txt, BorderLayout.CENTER);//将显示器添加到显示区域screen.add(clear, BorderLayout.EAST);//将清零键添加到显示器右边add(screen, BorderLayout.NORTH);//将显示器添加到BorderLayout的北方区域,即上方add(calc, BorderLayout.CENTER);//将操作区添加到中央区域 setBounds(450, 150, 240, 240);//设置计算器大小,位置setVisible(true);//设置可见性setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置退出方式validate();//使设置生效(根据课本232页) }class ClearListener implements ActionListener {//清零计数器的实现public void actionPerformed(ActionEvent e) {screen_txt.setText("");}}class NumberListener implements ActionListener {//数字监视器的实现,用于处理数字按钮的监听public void actionPerformed(ActionEvent e) {if (!IsClick) {//没有点击过的操作screen_txt.setText("");IsClick = true;}String s = screen_txt.getText();//读取显示器的内容s += e.getActionCommand();//显示器内容+鼠标点击的内容screen_txt.setText(s);//显示器显示s }}class OperatorListener implements ActionListener {//操作符监听的实现,用于处理点击操作符的事件public void actionPerformed(ActionEvent e) {if (!IsClick) return;//如果数字没有被点击过直接点击操作符,返回String s = screen_txt.getText();//读取显示器内容double num = Double.parseDouble(s);//转换成数字IsClick = false;//点击过操作符后将不能被再次点击操作符switch (operator) {//处理操作符的运算case '+': {result = num + result;break;}case '-': {result = result - num;break;}case '*': {result *= num ;break;}case '/': {if (num == 0) result = 0;elseresult /= num;break;}case '=': {result = num;break;}}screen_txt.setText(String.valueOf( result));//显示器显示结果String op = e.getActionCommand();//监听读取操作符operator = op.charAt(0);//设置操作符 }} }
转载于:.html
更多推荐
用JAVA写的一个简单的图形界面计算器
发布评论