Java 使用Swing控件实现一个简单的计算器GUI
我想用Swing组件制作一个简单的计算器,它只有一个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
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。这将是相同的。也可以将您的按钮命名为有意义的按钮。