Java if/else station in action执行的功能不工作
我有一个Java类,actionPerformed中的if/else语句不起作用。如果我删除if语句并只放置一些语句(即show messgae对话框),则会成功调用/执行Java if/else station in action执行的功能不工作,java,swing,jframe,Java,Swing,Jframe,我有一个Java类,actionPerformed中的if/else语句不起作用。如果我删除if语句并只放置一些语句(即show messgae对话框),则会成功调用/执行 import javax.swing.*; import java.awt.*; import java.awt.event.*; public class CarsAndVans extends JFrame implements ActionListener { final JButton carBtn = new
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class CarsAndVans extends JFrame implements ActionListener {
final JButton carBtn = new JButton("Car");
final JButton vanBtn = new JButton("Van");
final JButton reset = new JButton("Reset");
JTextField carTex = new JTextField(10);
JTextField vanTex = new JTextField(10);
int cars = 0, vans = 0;
CarsAndVans() {
setLayout(new FlowLayout());
setSize(400, 300);
setTitle("Cars and Vans Applet");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
JButton carBtn = new JButton("Car");
JButton vanBtn = new JButton("Van");
JButton reset = new JButton("Reset");
JTextField carTex = new JTextField(10);
carTex.setEditable(false);
JTextField vanTex = new JTextField(10);
vanTex.setEditable(false);
int cars = 0, vans = 0;
carTex.setEditable(false);
vanTex.setEditable(false);
add(new Label("Cars"));
add(carTex);
add(new Label("Van:"));
add(vanTex);
add( carBtn);
add( vanBtn);
add( reset);
carBtn.addActionListener(this);
vanBtn.addActionListener(this);
reset.addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent actionEvent) {
if (actionEvent.getSource() == carBtn){
cars++;
} else if (actionEvent.getSource() == vanBtn) {
vans++;
} else if ((actionEvent.getSource() == reset)) {
vans = 0;
cars = 0;
}
carTex.setText(""+cars);
vanTex.setText(""+vans);
}
}
不知道是什么问题
我在这里看了一些问题,但没有一个是类似的
谢谢您的帮助。您正在隐藏您的变量
final JButton carBtn = new JButton("Car");
final JButton vanBtn = new JButton("Van");
final JButton reset = new JButton("Reset");
CarsAndVans() {
//...
JButton carBtn = new JButton("Car");
JButton vanBtn = new JButton("Van");
JButton reset = new JButton("Reset");
看看你怎么申报了两次。这意味着传递给actionPerformed
方法的操作源与类的实例不同,因此==
无法工作
删除构造函数中的重新减速您正在隐藏变量
final JButton carBtn = new JButton("Car");
final JButton vanBtn = new JButton("Van");
final JButton reset = new JButton("Reset");
CarsAndVans() {
//...
JButton carBtn = new JButton("Car");
JButton vanBtn = new JButton("Van");
JButton reset = new JButton("Reset");
看看你怎么申报了两次。这意味着传递给actionPerformed
方法的操作源与类的实例不同,因此==
无法工作
删除构造器中的重新减速问题是您正在构造器中重新定义按钮类型。因此,您正在跟踪它们,并在ActionListener中使用错误的
final JButton carBtn=新JButton(“汽车”);
最终JButton vanBtn=新JButton(“Van”);
最终JButton重置=新JButton(“重置”);
vs
JButton carBtn=新的JButton(“汽车”);
JButton vanBtn=新JButton(“Van”);
JButton reset=新JButton(“reset”);
问题在于您正在构造函数中重新定义按钮类型。因此,您正在跟踪它们,并在ActionListener中使用错误的
final JButton carBtn=新JButton(“汽车”);
最终JButton vanBtn=新JButton(“Van”);
最终JButton重置=新JButton(“重置”);
vs
JButton carBtn=新的JButton(“汽车”);
JButton vanBtn=新JButton(“Van”);
JButton reset=新JButton(“reset”);