Posted on 2006-10-12 10:09
my 閱讀(387)
評論(0) 編輯 收藏 所屬分類:
java
import?java.awt.*;
import?java.awt.event.*;
import?javax.swing.*;
class?MyFrame?extends?JFrame?implements?ActionListener
{
????????private?JButton?ButtonNum[]=new?JButton[16];
????????private?String?countCode[]={"/","*","-","+","=","."};
????????
????????private?JTextField?displayField=new?JTextField();????????
????????private?JPanel?pan=new?JPanel();
????????
????????private?String?displayStr="";
????????private?double?firstNum=0,secondNum=0;
????????private?int?countNum;
????????private?boolean?start=false,end=false;
????????
????public?MyFrame()
????{????
????????super("模擬簡便計算器");
????????setSize(400,400);
????????Container?c=getContentPane();
????????c.setLayout(new?BorderLayout());????
????????
????????displayField.setHorizontalAlignment(JTextField.RIGHT);
????????displayField.setFont(new?Font("TimesRoman",Font.BOLD,50));
????????displayField.setBackground(Color.gray);
????????displayField.setEditable(false);
????????displayField.addActionListener(this);????????
????????c.add(displayField,"North");
????????c.add(pan,"Center");
????????????
????????pan.setLayout(new?GridLayout(4,4));
????????
????????for(int?n=0;n<16;n++)??//定義按鍵屬性
????????{????
????????????if(n<10)
????????????{
????????????????ButtonNum[n]=new?JButton(n+"");
????????????????ButtonNum[n].setFont(new?Font("TimesRoman",Font.BOLD,50));????????????????
????????????????ButtonNum[n].setBackground(Color.lightGray);
????????????????ButtonNum[n].addActionListener(this);
????????????????pan.add(ButtonNum[n]);
????????????}
????????????
????????????else
????????????{
????????????????ButtonNum[n]=new?JButton(countCode[15-n]);
????????????????ButtonNum[n].setFont(new?Font("TimesRoman",Font.BOLD,50));??????
????????????????ButtonNum[n].addActionListener(this);
????????????????pan.add(ButtonNum[n]);
????????????}????
????????}????
????????setVisible(true);
????}
????
????public?static?void?main(String?args[])
????{????
????????MyFrame?myFrame=new?MyFrame();
????}
????????
????public?void?windowClosing(WindowEvent?e)
????{
????????dispose();
????????System.exit(0);
????}
????
????public?void?actionPerformed(ActionEvent?e)
????{
????????for(int?i=0;i<16;i++)
????????{
????????????if(i<=10)???//算數按鈕輸入事件處理??判斷并顯示輸入的運算數字
????????????{
????????????????if(e.getSource()==ButtonNum[i]?&&?start==false)
????????????????{
????????????????????displayStr=displayStr+ButtonNum[i].getLabel();
????????????????????displayField.setText(displayStr);
????????????????????
????????????????}
????????????????
????????????????if(e.getSource()==ButtonNum[i]?&&?start==true)
????????????????{
????????????????????displayStr=displayStr+ButtonNum[i].getLabel();
????????????????????displayField.setText(displayStr);
????????????????????end=true;????????
????????????????}????????????
????????????}
????????
????????????if(i>=12?&&?i<=15)?????//運算按鈕事件處理??判斷并接受輸入的運算數字
????????????{????
????????????????if(e.getSource()==ButtonNum[i]?&&?start==false)
????????????????{
????????????????????firstNum=Double.valueOf(displayField.getText()).doubleValue();
????????????????????countNum=i;
????????????????????displayField.setText("");
????????????????????displayStr="";
????????????????????start=true;????????????
????????????????}
????????????????
????????????????else
????????????????{????if(e.getSource()==ButtonNum[i]?)
????????????????????{
????????????????????????countNum=0;
????????????????????????displayField.setText("");
????????????????????????displayStr="";
????????????????????????firstNum=0;
????????????????????????secondNum=0;
????????????????????????end=false;????
????????????????????}????????????????????????????????????????????????????????????????????????
????????????????}????????????????????
????????????}
????????
????????????if(e.getSource()==ButtonNum[11])????//等號按鈕事件處理
????????????{
????????????????secondNum=Double.valueOf(displayField.getText()).doubleValue();
????????????????????????
????????????????if(start=true?&&?end==true)
????????????????{????????????????????????????????????????????????????????
????????????????????if(countNum==12)
????????????????????????displayField.setText(firstNum+secondNum+"");
????????????????????if(countNum==13)
????????????????????????displayField.setText(firstNum-secondNum+"");
????????????????????if(countNum==14)
????????????????????????displayField.setText(firstNum*secondNum+"");
????????????????????if(countNum==15?&&?secondNum!=0)
????????????????????????displayField.setText(firstNum/secondNum+"");????????????????????????????????
????????????????}
????????????????????????????
????????????????countNum=0;
????????????????displayStr="";
????????????????firstNum=0;
????????????????secondNum=0;
????????????????start=false;
????????????????end=false;????
????????????}
????????}????????????
????}
}