计算机原理java,计算机组织原理与体系结构课程设计-用Java Swing实现简单的计算器功能...

《计算机组织原理与体系结构课程设计-用Java Swing实现简单的计算器功能》由会员分享,可在线阅读,更多相关《计算机组织原理与体系结构课程设计-用Java Swing实现简单的计算器功能(27页珍藏版)》请在人人文库网上搜索。

1、用Java Swing实现简单的计算器功能班级:姓名: 学号: 计算机科学与工程学院网络工程系一:源代码如下:package com.xinzhan.demoFrame;import java.awt.Font;import java.awt.Image;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JOpti。

2、onPane;import javax.swing.JPanel;import javax.swing.JTextField;public class CalculatorFrame extends JFrame implements ActionListenerpublic JTextField textField = new JTextField();private final JPanel panel = new JPanel();private final JButton b12 = new JButton();private final JButton b13 = new JButt。

3、on();private final JButton s5 = new JButton();private final JButton s1 = new JButton();private final JButton b7 = new JButton();private final JButton b8 = new JButton();private final JButton b9 = new JButton();private final JButton s2 = new JButton();private final JButton b4 = new JButton();private 。

4、final JButton b5 = new JButton();private final JButton b6 = new JButton();private final JButton s3 = new JButton();private final JButton b1 = new JButton();private final JButton b2 = new JButton();private final JButton b3 = new JButton();private final JButton s4 = new JButton();private final JButton。

5、 b0 = new JButton();private final JButton b11 = new JButton();private final JButton bn = new JButton();private final Image icon1 = Toolkit.getDefaultToolkit().getImage(image/cal.png);private boolean add,sub,mul,div;private boolean end = true;private double num1;/第一个操作数private double num2;/第二个操作数priv。

6、ate double result;/存放结果/* Launch the application* param args*/public static void main(String args) try CalculatorFrame frame = new CalculatorFrame();frame.setVisible(true); catch (Exception e) e.printStackTrace();/* Create the frame* return */public CalculatorFrame() super();this.setBounds(Toolkit.g。

7、etDefaultToolkit().getScreenSize().width/2-553/2,Toolkit.getDefaultToolkit().getScreenSize().height/2-487/2, 553, 487);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);try jbInit(); catch (Throwable e) e.printStackTrace();private void jbInit() throws Exception getContentPane().setLayout(null);setFont(。

8、new Font(黑体, Font.PLAIN, 20);setTitle(计算机Jhon2.0版);this.setIconImage(icon1);getContentPane().add(textField);textField.setFont(new Font(楷体, Font.PLAIN, 20);textField.setBounds(47, 29, 448, 83);textField.setHorizontalAlignment(JTextField.RIGHT);textField.setEditable(false);textField.setText(0);getCont。

9、entPane().add(panel);panel.setLayout(null);panel.setBounds(10, 141, 517, 308);panel.add(b12);b12.setFont(new Font(楷体, Font.PLAIN, 20);b12.setBounds(10, 10, 106, 40);b12.setText(Cancel);b12.addActionListener(this);panel.add(b13);b13.setFont(new Font(楷体, Font.PLAIN, 30);b13.setText(CE);b13.setBounds(1。

10、43, 10, 106, 40);b13.addActionListener(this);panel.add(s5);s5.setText(EXIT);s5.setFont(new Font(楷体, Font.PLAIN, 30);s5.setBounds(270, 10, 106, 40);s5.addActionListener(this);panel.add(s1);s1.setFont(new Font(楷体, Font.PLAIN, 30);s1.setText(+);s1.setBounds(401, 10, 106, 40);s1.addActionListener(this);。

11、panel.add(b7);b7.setFont(new Font(楷体, Font.PLAIN, 30);b7.setText(7);b7.setBounds(10, 70, 106, 40);b7.addActionListener(this);panel.add(b8);b8.setFont(new Font(楷体, Font.PLAIN, 30);b8.setText(8);b8.setBounds(143, 70, 106, 40);b8.addActionListener(this);panel.add(b9);b9.setFont(new Font(楷体, Font.PLAIN,。

12、 30);b9.setText(9);b9.setBounds(270, 70, 106, 40);b9.addActionListener(this);panel.add(s2);s2.setFont(new Font(, Font.PLAIN, 30);s2.setText(-);s2.setBounds(401, 70, 106, 40);s2.addActionListener(this);panel.add(b4);b4.setFont(new Font(楷体, Font.PLAIN, 30);b4.setText(4);b4.setBounds(10, 133, 106, 40);。

13、b4.addActionListener(this);panel.add(b5);b5.setFont(new Font(楷体, Font.PLAIN, 30);b5.setText(5);b5.setBounds(143, 133, 106, 40);b5.addActionListener(this);panel.add(b6);b6.setFont(new Font(楷体, Font.PLAIN, 30);b6.setText(6);b6.setBounds(270, 133, 106, 40);b6.addActionListener(this);panel.add(s3);s3.se。

14、tFont(new Font(楷体, Font.PLAIN, 30);s3.setText(*);s3.setBounds(401, 133, 106, 40);s3.addActionListener(this);panel.add(b1);b1.setFont(new Font(楷体, Font.PLAIN, 30);b1.setText(1);b1.setBounds(10, 195, 106, 40);b1.addActionListener(this);panel.add(b2);b2.setFont(new Font(楷体, Font.PLAIN, 30);b2.setText(2。

15、);b2.setBounds(143, 195, 106, 40);b2.addActionListener(this);panel.add(b3);b3.setFont(new Font(楷体, Font.PLAIN, 30);b3.setText(3);b3.setBounds(270, 195, 106, 40);b3.addActionListener(this);panel.add(s4);s4.setFont(new Font(楷体, Font.PLAIN, 30);s4.setText(/);s4.setBounds(401, 195, 106, 40);s4.addAction。

16、Listener(this);panel.add(b0);b0.setFont(new Font(楷体, Font.PLAIN, 30);b0.setText(0);b0.setBounds(10, 258, 106, 40);b0.addActionListener(this);panel.add(b11);b11.setFont(new Font(楷体, Font.PLAIN, 30);b11.setText(.);b11.setBounds(143, 258, 106, 40);b11.addActionListener(this);panel.add(bn);bn.setFont(ne。

17、w Font(楷体, Font.PLAIN, 30);bn.setText(=);bn.setBounds(270, 258, 237, 40);bn.addActionListener(this);private void getNumber(int num)String str = ;String s = new String(String.valueOf(num);if(end)/输入完毕,将文本框置零this.textField.setText(0);end = false;else if(this.textField.getText().equals(0)this.textField。

18、.setText(s);/如果文本框值为零,则将其覆盖elsestr = this.textField.getText()+s;this.textField.setText(str);/如果文本框值不为零,则在后面添加数字private void sign(int s)if(s=1)add = true;sub = false;mul = false;div = false;else if(s=2)add = false;sub = true;mul = false;div = false;else if(s=3)add = false;sub = false;mul = true;div =。

19、 false;else if(s=4)add = false;sub = false;mul = false;div = true;else if(s=5)add = false;sub = false;mul = false;div = false;num1 = Double.parseDouble(this.textField.getText();/获得输入的第一个操作数end = false;this.textField.setText(0);/操作数num1输入结束public void point()String s ;if(this.textField.getText().inde。

20、xOf(.)0)sb.deleteCharAt(this.textField.getText().length()-1);/删除最后一位数字this.textField.setText(sb.toString();elsethis.textField.setText();else if(e.getSource()=b11)/小数点point();else if(e.getSource()=bn)/获得等号cal();二:测试num1 = 15,num2 = 3;相加相减相乘相除除数为零的情况三:心得体会:通过这次的实验课,让我真的学会了好多知识,尤其是参数的传递,让我明白了参数传递的好处和重要性。同时也锻炼了我的思维,在一开始的时候感觉这个真的很好做,于是用JBuilder2008不一会把界面就画好了,但是做了一会才发现有好多问题,不知道怎么去解决。比如说,小数点值能输一次,还有如果文本框的值本来为0,当我们输个1的时候,它需要把0覆盖掉,尤其是把输入的数字拼接起来等等一系列的问题。但是经过自己的一番努力下还是把它做出来了,虽然可能还存在许多问题有待解决,但是基本上的功能实现了,感觉还是蛮有收获的,更重要的是发现自己在Swing这块还有好多东西没有弄明白,我觉得今后应该更加的努力去学习更多知识。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值