Java 使用Swing控件实现一个简单的计算器GUI

Java 使用Swing控件实现一个简单的计算器GUI,java,swing,awt,calculator,jtextfield,Java,Swing,Awt,Calculator,Jtextfield,我想用Swing组件制作一个简单的计算器,它只有一个JTextField。在将实现ActionEvents的actionPerformed方法中,我想知道:当用户输入特定按钮时,执行特定操作需要什么逻辑 这是我的密码 packagecalculator1; 导入javax.swing.*; 导入java.awt.*; 导入java.awt.event.*; 类MyFirstGUI扩展JFrame实现ActionListener{ int val1=0; int val2=0; 整数和=0; JT

我想用Swing组件制作一个简单的计算器,它只有一个
JTextField
。在将实现
ActionEvent
s的
actionPerformed
方法中,我想知道:当用户输入特定按钮时,执行特定操作需要什么逻辑

这是我的密码

packagecalculator1;
导入javax.swing.*;
导入java.awt.*;
导入java.awt.event.*;
类MyFirstGUI扩展JFrame实现ActionListener{
int val1=0;
int val2=0;
整数和=0;
JTextField t1=新的JTextField(10);
JButton b1=新JButton(“+”);
JButton b2=新JButton(“*”);
JButton b3=新JButton(“/”);
JButton b4=新JButton(“=”);
int n1,n2;
公共MyFirstGUI(){
setLayout(新的FlowLayout());
setVisible(真);
设置大小(500500);
JLabel l1=新的JLabel(“结果”);
添加(l1);
添加(t1);
添加(b1);
添加(b2);
添加(b3);
添加(b4);
b1.添加ActionListener(本);
b2.addActionListener(本);
b3.添加ActionListener(本);
b4.添加ActionListener(本);
}
已执行的公共无效操作(操作事件e){
int val1,val2,和=0;
val1=Integer.parseInt(t1.getText());
如果(如getSource()==b1){
t1.setText(“”);
}
如果(如getSource()==b4){
val2=Integer.parseInt(t1.getText());
总和=val1+val2;
t1.setText(“+sum”);
}
}
}
课堂测试{
公共静态void main(字符串[]args){
MyFirstGUI p=新的MyFirstGUI();
}
}

希望这对您有所帮助

       import java.util.Arrays;

    import javax.swing.*;
       import java.awt.*;

     import java.awt.event.*;

     class MyFirstGUI extends JFrame implements ActionListener {

int val1;
int val2;
int sum = 0;
int num=0;
JTextField t1 = new JTextField(10);

JButton b1 = new JButton("+");
JButton b2 = new JButton("*");
JButton b3 = new JButton("/");
JButton b4 = new JButton("=");
int n1, n2;

public MyFirstGUI() {
    setLayout(new FlowLayout());
    setVisible(true);
    setSize(500, 500);
    JLabel l1 = new JLabel("Result");

    add(l1);
    add(t1);
    add(b1);
    add(b2);
    add(b3);
    add(b4);

    b1.addActionListener(this);
    b2.addActionListener(this);
    b3.addActionListener(this);

}

public void actionPerformed(ActionEvent e) {

    String[]a = {"+","*","/"};
    if (e.getSource() == b1) {
        val1 = Integer.parseInt(t1.getText());
        t1.setText("");
        b4.addActionListener(this);
    }
    else if (e.getSource() == b2) {
        val1 = Integer.parseInt(t1.getText());
        t1.setText("");
        num=1;
    b4.addActionListener(this);
     }
    else if (e.getSource() == b3) {
        val1 = Integer.parseInt(t1.getText());
        t1.setText("");
        num=2;
      b4.addActionListener(this);
    }
    else if (e.getSource() == b4) {
        val2 = Integer.parseInt(t1.getText());

        switch(a[num]) {
        case "+":
            sum = val1+val2;
            System.out.println(val1+val2);
            t1.setText(sum+"");
            break;
        case "*":
            sum = val1*val2;
            System.out.println(val1*val2);
            t1.setText(sum+"");
            break;
        case "/":
            sum = val1/val2;
            System.out.println(val1/val2);
            t1.setText(sum+"");
            break;
        }
       b4.removeActionListener(this);
       val1=0;val2=0;
    }
}
 }

  class answer4 {
public static void main(String[] args) {
    MyFirstGUI p = new MyFirstGUI();
  }
 }

我也加了。

你是说怎样加、减、乘、除?你在问什么是执行的操作?如果所有算术运算都涉及两个值,为什么只有一个输入字段(JTextField)?我在问执行某些操作需要什么逻辑,比如b1用于加法,b2用于乘法,以及其他操作。我尝试使用ifs和else,但它们都没有在ActionPerformed方法中工作。您从JTextField读取文本,执行计算,并将输出设置为JTextField。这将是相同的。也可以将您的按钮命名为有意义的按钮。