我做了getbuttons();方法创建按钮,并减少不必要的行,如果我做每个按钮分开。然后在actionperformed gettext()中使用;所以每当我点击这3个按钮中的一个,它就会给我它的文本(如果我点击按钮1,它就会打印出1)。我现在打算做的是,我想用每个按钮来处理不同的事情,例如,我想用按钮“1”调用getmath()方法;另外两个按钮可以做其他事情,比如调用不同的方法。
我不知道怎么做,所以我来这里寻求帮助。谢谢您。
void getMath() {
int x = 3;
int y = 5;
System.out.println(x + y);
}
void getButtons() {
String[] buttons = { "1", "2", "3" };
int height = 250;
int gap = 65;
for (int i = 0; i < buttons.length; i++) {
JButton gameButtons = new JButton(buttons[i]);
gameButtons.setFont(new Font("Times New Roman", Font.BOLD, 19));
gameButtons.setBorder(BorderFactory.createLineBorder(Color.BLACK));
gameButtons.setBounds(394, 50 + (height + gap * i), 150, 40);
gameButtons.setForeground(Color.BLACK);
gameButtons.setBackground(Color.WHITE);
gameButtons.addActionListener(this);
frame.add(gameButtons);
}
}
public void actionPerformed(ActionEvent e) {
System.out.println(((JButton) e.getSource()).getText());
}
1条答案
按热度按时间lp0sw83n1#
现在,所有按钮都使用相同的eventlistener。为了实现每个按钮的不同处理,必须实现不同的actionperformed事件。
因此,我建议您不要在循环中创建按钮,而是单独创建它们。你知道,你会有3个按钮,所以不需要循环。对于lambdas,这大致应该是
有签名吗