夏天落星寒 夏天落星寒
关注数: 20 粉丝数: 57 发帖数: 824 关注贴吧数: 67
求大神注释 详细点哈 非常感谢 package 设计; import java.awt.*; import javax.swing.*; import java.awt.event.*; public class Calculate extends WindowAdapter //程序框架继承自WindowAdapter类 { private JTextField Jtext=new JTextField("0."); private JFrame f=new JFrame("计算器"); private String x=""; private String y=""; private String cal=""; private boolean flag1=true; private boolean flag2=false; public void init()//初始化 { String[] buttonValue = new String[]{"1","2","3","+","C","4","5","6","-","退格","7","8","9","*"," ","0","",".","/","="}; Container contain = f.getContentPane(); JPanel Jpan = new JPanel(); JButton[] Jb=new JButton[20]; contain.setLayout(new BorderLayout()); Jpan.setLayout(new GridLayout(4,5)); /采用4行5列的网格布局 Jtext.setHorizontalAlignment(JTextField.RIGHT); contain.add(Jtext,"North"); contain.add(Jpan); A num=new A(); //数据 Result re=new Result(); //结果 Opertion op=new Opertion(); //运算符 Clear cl=new Clear(); //清零 BackSpace back=new BackSpace();//退格 for(int i = 0 ; i <Jb.length ; i++) //利用For循环添加按钮 { Jb[i] = new JButton (buttonValue[i]); Jpan.add(Jb[i]); if(i==3 || i==8 || i==13 || i==18) Jb[i].addActionListener(op); if(i==0 || i==1 || i==2 || i==5 || i==6 || i==7|| i==10 || i==11 || i==12 || i==15 || i==17) Jb[i].addActionListener(num); if((i==3||i==4||i==8||i==9)||((i>12)&&(i<=19))&&i!=15) Jb[i].setForeground(Color.BLUE) ; else Jb[i].setForeground(Color.BLACK); //控制按钮字体颜色 } Jb[4].addActionListener(cl); Jb[9].addActionListener(back); Jb[19].addActionListener(re); f.setSize(350,500); f.setVisible(true); f.addWindowListener( //采用匿名类实现窗口的正常关闭 new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); } class A implements ActionListener//输入数据 { public void actionPerformed(ActionEvent e) { String a = Jtext.getText(); String s = e.getActionCommand(); if(a.equals("0.")||a.equals("+")||a.equals("-")||a.equals("*")||a.equals("/")) Jtext.setText(s); else { if(flag2) { Jtext.setText(s); flag2=false; } else Jtext.setText(a+s); } } } class Opertion implements ActionListener { public void actionPerformed(ActionEvent e) { cal=e.getActionCommand(); if(flag1==true) x=Jtext.getText(); Jtext.setText(cal); flag1=false; } } class Clear implements ActionListener//清零功能 { public void actionPerformed(ActionEvent e) { Jtext.setText("0."); } } class BackSpace implements ActionListener//退格功能 { public void actionPerformed(ActionEvent e) { String s = e.getActionCommand(); String s1 = Jtext.getText(); if(s.equals("退格")) s1=new String (s1.substring(0,s1.length()-1)); Jtext.setText(s1); } } class Result implements ActionListener//计算并显示结果 { public void actionPerformed(ActionEvent e) { double num1; num1=Double.parseDouble(x); y=Jtext.getText(); double num2; num2=Double.parseDouble(y); double result=0; if(num2!=0) { if(cal.equals("+")) result=num1+num2; if(cal.equals("-")) result=num1-num2; if(cal.equals("*")) result=num1*num2; String s1=Double.toString(result); Jtext.setText(s1); } if(cal.equals("/")) { if(num2==0) Jtext.setText("除数不能为0"); else { result=num1/num2; String s1=Double.toString(result); Jtext.setText(s1); } } flag1=true; flag2=true; } } public static void main(String[] args)//main方法 { Calculate count=new Calculate(); count.init(); } }
1 下一页