编写一个应用程序,有一个标题为“计算”的窗口,窗口的布局为FlowLayout布局。设计4个按钮“加”“差”“积”“除”。单击相应的按钮,将两个文本框的数字做运算。

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

public class Dzj {
    public static void main(String[] args) {
        new DzjWin("计算");
    }
}
class DzjWin extends JFrame implements ActionListener {
    Box Vbox;
    JPanel panel;
    JLabel label;
    JTextField inputField_1,inputField_2,outputField;
    JButton[]buttons = new JButton[4];
    Font font = new Font("Kaiti",Font.BOLD,25);
    DzjWin(String s){
        init();
        setContentPane(panel);
        setTitle(s);
        setVisible(true);
        setSize(800,300);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
    void init(){
        panel = new JPanel();
        inputField_1 = new JTextField(10);
        inputField_2 = new JTextField(10);
        outputField = new JTextField(10);
        Vbox = Box.createVerticalBox();
        label = new JLabel("=");
        for(int i=0;i<buttons.length;i++){
            switch (i){
                case 0:buttons[i] = new JButton("加");
                break;
                case 1:buttons[i] = new JButton("差");
                    break;
                case 2:buttons[i] = new JButton("积");
                    break;
                case 3:buttons[i] = new JButton("除");
                    break;
            }
            buttons[i].addActionListener(this);
            Vbox.add(buttons[i]);
        }
        inputField_1.setFont(font);
        inputField_2.setFont(font);
        outputField.setFont(font);
        label.setFont(font);
        panel.add(inputField_1);
        panel.add(Vbox);
        panel.add(inputField_2);
        panel.add(label);
        panel.add(outputField);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        if(e.getSource()==buttons[0]){
            try{
                double a = Double.parseDouble(inputField_1.getText());
                double b = Double.parseDouble(inputField_2.getText());
                double result = a+b;
                outputField.setText(""+result);
            }
            catch (NumberFormatException ex){
                JOptionPane.showMessageDialog(this,"您输入了非法数字","消息对话框",
                        JOptionPane.WARNING_MESSAGE);
            }
        }
        else if(e.getSource()==buttons[1]){
            try{
                double a = Double.parseDouble(inputField_1.getText());
                double b = Double.parseDouble(inputField_2.getText());
                double result = a-b;
                outputField.setText(""+result);
            }
            catch (NumberFormatException ex){
                JOptionPane.showMessageDialog(this,"您输入了非法数字","消息对话框",
                    JOptionPane.WARNING_MESSAGE);
            }
        }
        else if(e.getSource()==buttons[2]){
            try{
                double a = Double.parseDouble(inputField_1.getText());
                double b = Double.parseDouble(inputField_2.getText());
                double result = a*b;
                outputField.setText(""+result);
            }
            catch (NumberFormatException ex){
                JOptionPane.showMessageDialog(this,"您输入了非法数字","消息对话框",
                        JOptionPane.WARNING_MESSAGE);
            }
        }
        else if(e.getSource()==buttons[3]){
            try{
                double a = Double.parseDouble(inputField_1.getText());
                double b = Double.parseDouble(inputField_2.getText());
                double result = a/b;
                outputField.setText(String.format("%.3f",result));
            }
            catch (NumberFormatException ex){
                JOptionPane.showMessageDialog(this,"您输入了非法数字","消息对话框",
                        JOptionPane.WARNING_MESSAGE);
            }
        }
    }
}

 

  • 11
    点赞
  • 94
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 这是一个关于“计算”的窗口窗口布局flowlayout。程序设计了四个按钮,分别命名为“”、“”、“”、“除”;另外,窗口中还有三个文本框单击相应按钮,将会把两个文本框的内容进行相应计算。 ### 回答2: 数字进行相应运算,并将结果显示在第三个文本框中。考虑到用户输入的可能是非数字的字符,我们需要在程序中入判断,如果输入的不是数字则给出错误提示,并将文本框清空。 首先,我们需要创建一个继承自JFrame的窗口类。在窗口的构造函数中,我们设置窗口标题为“计算”,并将窗口布局设置为FlowLayout布局。接下来,我们创建四个按钮一个号,一个减号,一个乘号和一个除号,并将它们入到窗口中。 为了实现按钮的点击事件,我们需要为每个按钮ActionListener。在点击按钮时,我们获取文本框中的数字,并进行相应运算,然后将结果显示在第三个文本框中。在获取文本框中的数字时,我们需要判断输入的是否是数字,并给出相应的提示。代码如下: ```java import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class Calculator extends JFrame implements ActionListener { private JTextField textField1, textField2, textField3; public Calculator() { setTitle("计算"); setLayout(new FlowLayout()); textField1 = new JTextField("0", 10); add(textField1); JLabel label1 = new JLabel("+"); add(label1); textField2 = new JTextField("0", 10); add(textField2); JLabel label2 = new JLabel("="); add(label2); textField3 = new JTextField("", 10); add(textField3); JButton addButton = new JButton(""); addButton.addActionListener(this); add(addButton); JButton subtractButton = new JButton("减"); subtractButton.addActionListener(this); add(subtractButton); JButton multiplyButton = new JButton("乘"); multiplyButton.addActionListener(this); add(multiplyButton); JButton divideButton = new JButton("除"); divideButton.addActionListener(this); add(divideButton); pack(); setVisible(true); } @Override public void actionPerformed(ActionEvent e) { try { int num1 = Integer.parseInt(textField1.getText()); int num2 = Integer.parseInt(textField2.getText()); int result = 0; if (e.getActionCommand().equals("")) { result = num1 + num2; } else if (e.getActionCommand().equals("减")) { result = num1 - num2; } else if (e.getActionCommand().equals("乘")) { result = num1 * num2; } else if (e.getActionCommand().equals("除")) { if (num2 == 0) { JOptionPane.showMessageDialog(null, "被除数不能为0!", "错误", JOptionPane.ERROR_MESSAGE); textField2.setText(""); textField3.setText(""); return; } result = num1 / num2; } textField3.setText(String.valueOf(result)); } catch (NumberFormatException ex) { JOptionPane.showMessageDialog(null, "请输入数字!", "错误", JOptionPane.ERROR_MESSAGE); textField1.setText(""); textField2.setText(""); textField3.setText(""); } } public static void main(String[] args) { new Calculator(); } } ``` 在程序中,我们将文本框的初始值设置为0,如果用户输入的不是数字,在异常处理中会将文本框清空,以便用户重新输入。如果用户输入的是除数为0的情况,在除法计算中判断并给出错误提示,也会将文本框清空。 最后,我们在main方法中创建一个Calculator对象,就可以运行程序了。运行程序后,会弹出一个带有减乘除四个按钮计算窗口,用户可以在文本框中输入数字,点击相应按钮即可进行运算。 ### 回答3: 第一个文本框输入的数字进行、减、乘、除的计算,结果显示在第三个文本框中。 首先,要编写程序开发环境。我们可以选择Java编程语言,使用Eclipse或者IntelliJ IDEA这样的集成开发环境。接下来,我们需要添Swing库以便于设计窗口按钮。 在设计界面时,我们可以设置窗口和组件的大小和位置,分配每个按钮相应功能,然后将它们添窗口中。对于本题要求的布局方式,我们可以使用FlowLayout布局方式来实现。 在Java中使用FlowLayout布局方法,程序会按照从左到右的顺序逐一放置每个组件。当组件放入行中超过该行的最大宽度时,程序会自动换行放置到下一行。为了达到这个效果,在创建窗口时应该使用FlowLayout类。我们可以使用如下语句创建一个frame: JFrame frame = new JFrame("计算"); frame.setLayout(new FlowLayout()); 接下来,我们需要创建四个按钮和三个文本框。为了更好地组织代码,我们可以将它们分别封装成一个方法。在创建按钮时,我们需要分别为每个按钮相应的事件监听器,当用户单击按钮时,程序会执行相应的操作,即对输入的数据进行相应计算。在这个例子中,我们需要创建四个监听器,分别用于、减、乘和除。 接下来,我们需要编写计算方法。在每个事件监听器中,我们可以从两个文本框中获取输入值,然后进行相应计算,并将结果显示在第三个文本框中。 为了完成这个应用程序,我们需要将所有的组件添窗口中。我们可以使用类似下面的代码: frame.add(button1); frame.add(button2); frame.add(button3); frame.add(button4); frame.add(textField1); frame.add(textField2); frame.add(textField3); 最后,我们需要设置窗口的一些属性,例如窗口大小、默认关闭方式等。我们可以使用类似下面的代码: frame.setSize(300, 200); frame.setResizable(false); // 禁止改变窗口大小 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 当程序执行时,它将创建一个名为“计算”的新窗口,并显示四个按钮和三个文本框。当用户单击每个按钮时,程序将对输入的数字进行、减、乘、除的计算,并将结果显示在第三个文本框中。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值