java实现单计算按钮简易计算器

类似上一篇文章的简易计算器,但是这个例子只有一个计算按钮,然后把加减乘除四个结果分行显示在textarea中

题目要求:编写一个Applet,利用两个文本框对象input1和input2,接收用户从键盘输入的两个整型数。当用户单击“计算”按钮时,可进行算术计算,并输出运算结果;运算结果放在多行文本域JTextArea组件中。

需要注意的是怎么把四行结果放在一个textarea中
本代码在除法上面有问题,没有类型转换,结果都是整数,以后会完善。
思路如下
1. 添加组件在容器中,分别是2个textfield,1个textarea,1个button。
2. 放置组件,布局frame,我使用的依然是GridLayout(2,2)布局。
3. 写button actionlistener,计算从两个textfield中获取的数据,并将结果分行放在textarea中
4. 添加菜单玩玩

代码如下:

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class e4_2 {
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                constructGUI();
            }
        });
    }

    private static void constructGUI() {

        //creat a frame
        JFrame.setDefaultLookAndFeelDecorated(true);
        JFrame frame = new JFrame();
        frame.setTitle("caculator");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setTitle("caculator");
        frame.setLayout(new GridLayout(2,2));


        //add menubar
        JMenuBar jMenuBar = new JMenuBar();
        JMenu operationMenu = new JMenu("operation");
        JMenu helpMenu = new JMenu("help");
        jMenuBar.add(operationMenu);
        jMenuBar.add(helpMenu);

        //add exit actionlistener
        JMenuItem operationExitMI = new JMenuItem("Exit");
        operationMenu.add(operationExitMI);
        operationExitMI.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                System.exit(0);
            }
        });

        // add information actionlistener
        JMenuItem helpInformationMI = new JMenuItem("Information");
        helpMenu.add(helpInformationMI);
        helpInformationMI.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                JOptionPane.showOptionDialog(null,
                        "program name:  caculator \n"
                                + "information :  trash\n"
                                + " created by  :  ChrisTree\n"
                                +"\n"
                                +"fuck the world\n"+"i love zhangyan forever\n",
                        "caculator information", JOptionPane.DEFAULT_OPTION,
                        JOptionPane.INFORMATION_MESSAGE, null, null, null);
            }
        });

        //set menubar
        frame.setJMenuBar(jMenuBar);
        frame.setSize(200, 100);
        frame.setVisible(true);

        //add txetfield
        JTextField jTextField1 = new JTextField();
        JTextField jTextField2 = new JTextField();
        frame.add(jTextField1);
        frame.add(jTextField2);

        //add a result textarea
        JTextArea jTextArea = new JTextArea();
        frame.add(jTextArea);


        //add abutton
        JButton jButton = new JButton("计算");
        frame.add(jButton);
        jButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                int a = Integer.parseInt(jTextField1.getText());
                int b = Integer.parseInt(jTextField2.getText());
                jTextArea.append("a + b = " + String.valueOf(a + b)+"\n");
                jTextArea.append("a - b = " + String.valueOf(a - b)+"\n");
                jTextArea.append("a * b = " + String.valueOf(a * b)+"\n");
                jTextArea.append("a / b = " + String.valueOf(a / b)+"\n");

            }
        });
        int frameWidth = 400;
        int frameHeight = 400;
        Dimension screenSize =
                Toolkit.getDefaultToolkit().getScreenSize();
        frame.setBounds((int)screenSize.getWidth() - frameWidth,0,frameWidth,frameHeight);
        frame.setVisible(true);
    }
}

其中将多行结果放入textarea时,如果使用setText方法的话,最后textarea中只会显示一个除法的结果,所以使用append(“a + b = ” + String.valueOf(a + b)+”\n”);追加一个换行符即可

编辑于2018/05/30
如有疏漏或者问题,欢迎私信与我探讨,我会虚心接受教导。
cuicuitrees@gmail.com

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值