基本上是一个具有少量整数的对象。我希望在按下相应的按钮时更改整数。例如,如果按JButton 2,则第二个int应该根据actionPerformed方法中的if语句中的方法进行更改。不知道我做错了什么但按钮现在什么也没做。
public class Object {
public int someInt;
//public int someOtherInt;
//etc. I have a few different ints that I do the same thing with throughout the code, each JButton changes a different int
public Object() {
this.someInt = someInt;
JFrame frame = new JFrame();
frame.setLayout(new FlowLayout());
frame.setDefaultCloseOperation(3);
frame.setSize(325, 180);
frame.setVisible(true);
frame.setTitle("Title");
//String message = blah blah
JLabel confirmMessage = new JLabel(message);
JButton button1 = new JButton("1");
JButton button2 = new JButton("2");
JButton button3 = new JButton("3");
//creating action listener and adding it to buttons and adding buttons to frame
}
public class listen implements ActionListener {
private int someInt;
private int someOtherInt;
public listen(int someInt, int someOtherInt) {
this.someInt = someInt;
this.someOtherInt = someOtherInt;
}
public void actionPerformed() {
if (aE.getSource() == button1) {
//change someInt
}
//same thing for other buttons
}
}
}
答案 0 :(得分:1)
标准做法是为每个按钮附加一个单独的监听器:
// syntax for Java 1.8:
button1.addActionListener(e -> {
// do whatever
});
// syntax for Java 1.7 and earlier:
button1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// do whatever
}
});
答案 1 :(得分:0)
定义操作命令并将其设置为所有按钮。然后在actionPerformed
中使用它们来确定点击了哪个按钮。
public class Object {
private static final String FIRST_ACTION = "firstAction";
private static final String SECOND_ACTION = "firstAction";
public Object() {
JButton button1 = new JButton("1");
button1.setActionCommand(FIRST_ACTION);
JButton button2 = new JButton("2");
button2.setActionCommand(SECOND_ACTION);
JButton button3 = new JButton("3");
// creating action listener and adding it to buttons and adding buttons
// to frame
}
public class listen implements ActionListener {
//some code
public void actionPerformed(ActionEvent aE) {
if (aE.getActionCommand().equals(FIRST_ACTION)) {
// change someInt
} else if (aE.getActionCommand().equals(SECOND_ACTION)) {
}
// same thing for other buttons
}
}
}