0

我将构建一个简单的 Swing UI 应用程序,以从单独的 JTextField 获取用户的输入,然后最后单击按钮执行添加以显示在 JButton 下方的 JTextField 上。

输入字段(JTextField)用于接收整数值。

 package com.APPOne_G5;

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


public class AppOne_G5 {
    private JPanel calculatorFrame;
    private JTextField inputField1;
    private JTextField inputField2;
    private JButton calculateButton;
    private JTextField outputField;
    private JLabel inputFieldLabel1;
    private JLabel inputFieldLabel2;
    private JLabel outputFieldLabel;

    private int number1, number2;
    private int calc = number1 + number2;

    public AppOne_G5() {
        inputField1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                number1 = Integer.parseInt(inputField1.getText());

            }
        });
        inputField2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                number2 = Integer.parseInt(inputField2.getText());
            }
        });
        calculateButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                 calc = number1 + number2;

                outputField.setText(String.valueOf(number1+number2));

            }
        });
        outputField.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                outputField.setEditable(false);
                outputField.setText(String.valueOf(calc));

            }
        });
    }



    public static void main(String[] args) {
        JFrame app = new JFrame("Group 5 AppOne");
        app.setDefaultCloseOperation(app.EXIT_ON_CLOSE);
        app.setContentPane(new AppOne_G5().calculatorFrame);
        app.setLocationRelativeTo(null);
        app.setVisible(true);
        app.pack();

    }
}

输入要添加的值后,我得到零。

这是应用程序的 GUI 形式

4

2 回答 2

0

根据我的评论,您只需要一个在单击按钮时激活的动作侦听器。这是它如何工作的完整工作示例:

public class AppOne_G5 {
    private JFrame app = new JFrame("Group 5 AppOne");
    private JPanel calculatorFrame = new JPanel();
    private JTextField inputField1 = new JTextField("2");
    private JTextField inputField2 = new JTextField("5");
    private JButton calculateButton = new JButton("Calculate");
    private JTextField outputField = new JTextField("   ");
    private JLabel inputFieldLabel1 = new JLabel("Enter Integer");
    private JLabel inputFieldLabel2 = new JLabel("Enter Integer");;
    private JLabel outputFieldLabel = new JLabel("Result");

    private int number1, number2;
    private int calc;

    public AppOne_G5() {
        //Add components in order
        app.add(calculatorFrame);
        app.setDefaultCloseOperation(app.EXIT_ON_CLOSE);
        calculatorFrame.add(inputFieldLabel1);
        calculatorFrame.add(inputField1);
        calculatorFrame.add(inputFieldLabel2);
        calculatorFrame.add(inputField2);
        calculatorFrame.add(calculateButton);
        calculatorFrame.add(outputFieldLabel);
        calculatorFrame.add(outputField);
        //Create action listener
        calculateButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                //Get the inputs
                number1 = Integer.parseInt(inputField1.getText());
                number2 = Integer.parseInt(inputField2.getText());
                System.out.println("number 1: " + number1 + ", number2: " + number2);
                //Calculate the output
                calc = number1 + number2;
                System.out.println("number 1: " + number1 + ", number2: " + number2 + ", calc: "+calc);
                //Show the output
                outputField.setText(String.valueOf(calc));
            }
        });
        //Show JFrame
        app.setVisible(true);
        app.pack();
    }
    
    public static void main(String[] args) {
        new AppOne_G5();
    }
}

要调试您没有得到预期输出的原因,您可以使用System.out.println("...");. 例如,如果您要使用以下内容,那么您可以查看问题是否是因为 calc 错误,或者 numebr1 或 number2 是否已经为零:

calc = number1 + number2;
System.out.println("number 1: " + number1 + ", number2: " + number2 + ", calc: "+calc);

一旦您知道问题出在哪里,您就可以进一步回到代码中并找出值为零的原因。

于 2021-03-04T02:33:10.670 回答
0

正如 Scorfield 所提到的,您只需要一个 ActionListener 在calculateButton. 那就是你应该得到用户输入的文本的地方。

于 2021-03-04T12:45:22.040 回答