1、程序主窗体继承JFrame类,使用24个JBotton按钮实现数字和基本功能,并且分别注册监听,采用6行4列网格布局,完成计算器界面的基本设置,最后对按钮进行计算分析,计算并显示结果。这段代码主要是对程序的主框架进行相应的设置super(简易计算器); setSize(300,260); this.setLayout(new BorderLayout(); jPanel1=new JPanel(); jPanel1.setLayout(new GridLayout(1,1); /一行一列的布局 jPanel2=new JPanel(); jPanel2.setLayout(new GridLa
2、yout(6,4); /六行四列的布局 resultField=new JTextField(0 jPanel1.add(resultField); this.add(jPanel1,BorderLayout.NORTH); this.add(jPanel2,BorderLayout.CENTER);设置数字按钮1到9并添加监控以及符号等的添加监控 s1=new JButton( 1 s1.addActionListener(this); s2=new JButton( 2 s2.addActionListener(this); s3=new JButton( 3 s3.addActionLi
3、stener(this); s4=new JButton( 4 s4.addActionListener(this); s5=new JButton( 5 s5.addActionListener(this); s6=new JButton( 6 s6.addActionListener(this); s7=new JButton( 7 s7.addActionListener(this); s8=new JButton( 8 s8.addActionListener(this); s9=new JButton( 9 s9.addActionListener(this); s0=new JBu
4、tton( 0 s0.addActionListener(this); b1=new JButton( + b1.addActionListener(this); b2=new JButton( - b2.addActionListener(this); b3=new JButton( * b3.addActionListener(this); b4=new JButton( / b4.addActionListener(this); b5=new JButton( b5.addActionListener(this); b6=new JButton( 开方 b6.addActionListe
5、ner(this); b7=new JButton( % b7.addActionListener(this); b8=new JButton( x! b8.addActionListener(this); b9=new JButton( 1/x b9.addActionListener(this); f1=new JButton( . f1.addActionListener(this); f2=new JButton( = f2.addActionListener(this); f3=new JButton( C f3.addActionListener(this); f4=new JBu
6、tton( 负 f4.addActionListener(this); f5=new JButton( 退格 f5.addActionListener(this); jPanel2.add(f3); jPanel2.add(b4); jPanel2.add(b3); jPanel2.add(f5); jPanel2.add(s7); jPanel2.add(s8); jPanel2.add(s9); jPanel2.add(b1); jPanel2.add(s4); jPanel2.add(s5); jPanel2.add(s6); jPanel2.add(b2); jPanel2.add(s
7、1); jPanel2.add(s2); jPanel2.add(s3); jPanel2.add(b5); jPanel2.add(s0); jPanel2.add(f1); jPanel2.add(f4); jPanel2.add(b6); jPanel2.add(b7); jPanel2.add(b8); jPanel2.add(b9); jPanel2.add(f2);(3)数据输入用方法num(int i)设计如下:public void num(int i) String s = null; s=String.valueOf(i); /返回整数i的字符串表示形式 if(end) /
8、如果数字输入结束,则将文本框置零,重新输入 resultField.setText( end=false; if(resultField.getText().equals() /如果文本框的内容为零,则覆盖文本框的内容 resultField.setText(s); else /如果文本框的内容不为零,则在内容后面添加数字 str = resultField.getText() + s; resultField.setText(str); 以及用JFrame的方法actionPerformed(ActionEvent e)来获取数据(4)符号运算及清零、退格的设计如下: if(add) / 加
9、法 num1=num1 +num2; else if(sub) /减法 num1=num1 - num2; else if(mul) /乘法 num1=num1 * num2; else if(div) /除法 if (num2=0) throw new ArithmeticException(除数不能为零 else num1=num1 / num2; else if(chf) /乘方 if(num2=0) num1=1; num1=Math.pow(num1, num2); else if(evo) /开方 if(num20) throw new ArithmeticException(被开
10、方数不能小于零 else num1=Math.sqrt(num2); else if(rec) /倒数分母不能小于零 else num1=1/num2; else if(per) /百分 num1=num1/100.0; else if(pur) /阶乘负数不能求阶乘 else for(int i=1;inum2;i+) num1=i*num1; resultField.setText(String.valueOf(num1); end=true; else if(e.getSource()=f3) /实现清零 else if(e.getSource()=f4) /实现负号 if(result
11、Field.getText()!=)-+resultField.getText(); else if(e.getSource()=f5) /实现退格 int i; i=(resultField.getText().length(); if(i=1) resultField.setText( else str=resultField.getText(); resultField.setText(str.substring(0,i-1);五、程序设计import java.awt.*; import java.awt.event.*; import javax.swing.*; public cl
12、ass test1 extends JFrame implements ActionListener / JFrame jframe1; JPanel jPanel1,jPanel2; JTextField resultField; JButton s1,s2,s3,s4,s5,s6,s7,s8,s9,s0,b1,b2,b3,b4,b5,b6,b7,b8,b9,f1,f2,f3,f4,f5; private boolean end,add,sub,mul,div,evo,chf,per,rec,pur;private String str;private double num1,num2; p
13、ublic test1() super( /四行五列的布局 public void num(int i) if(end) /如果数字输入结束,则将文本框置零,重新输入 else /如果文本框的内容不为零,则在内容后面添加数字 public void actionPerformed(ActionEvent e)throws ArithmeticException /数字事件 if(e.getSource()=s1) num(1); else if(e.getSource()=s2) num(2); else if(e.getSource()=s3) num(3); else if(e.getSo
14、urce()=s4) num(4); else if(e.getSource()=s5) num(5); else if(e.getSource()=s6) num(6); else if(e.getSource()=s7) num(7); else if(e.getSource()=s8) num(8); else if(e.getSource()=s9) num(9); else if(e.getSource()=s0) num(0); /符号事件 else if(e.getSource()=b1) sign(1); else if(e.getSource()=b2) sign(2); e
15、lse if(e.getSource()=b3) sign(3); else if(e.getSource()=b4) sign(4); else if(e.getSource()=b5) sign(5); else if(e.getSource()=b6) sign(6); else if(e.getSource()=b7) sign(7); else if(e.getSource()=b8) sign(8); else if(e.getSource()=b9) sign(9); else if(e.getSource()=f1) /实现. str=resultField.getText(); if(str.indexOf()=1) str+=; resultField.setText(str); else if(e.getSource()=f2) /实现 num2=Double.parseDouble(resultField.getText(); num1=num1 +num2; else if(sub) /减法 num1=num1 - num2; resultField.setText(str.
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1