是否可以将 a 传递给String
a ActionListener
?我正在创建一个猜数游戏,我需要将选择的难度传递给ActionListener
,因为它是从打开的第一个 GUI 传递的。Game()
当它直接传递给构造函数时,我该怎么做?
问问题
106 次
4 回答
0
让您的 ActionListener 访问包含猜测结果的变量。
我会做类似的事情:
final JTextArea textArea = new JTextArea();
JButton button =new JButton("press");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
String text = textArea.getText();
if (text.equals("something")) {
doSomething();
} else {
doSomethingElse();
}
}
});
于 2012-05-27T05:52:48.937 回答
0
字符串从何而来?您可以将该组件传递给ActionListener
构造时。例如,您的字符串来自一个JLabel
对象。然后
class GuessNumberActionListener implements ActionListener {
private JLabel difficulty;
public GuessNumberActionListener(JLabel difficulty) {
this.difficulty = difficulty;
}
// implement other methods
}
然后在你的动作监听器中,你可以访问/更新你想要的。
于 2012-05-27T05:54:15.370 回答
0
ActionListener 是一个接口。尝试使用继承扩展接口的功能。这会成功的
于 2012-05-27T05:56:25.507 回答
-1
你当然可以。有很多方法,但其中之一是将其传递给ActionListener
's 构造函数:
public class MyClass implements ActionListener {
private int difficultyLevel;
public MyClass(int difficultyLevel) {
this.difficultyLevel = difficultyLevel;
}
public void actionPerformed(ActionEvent e) {
...//code that reacts to action and does something based on difficultyLevel
}
}
更新:
看起来设计模式警察今天全力以赴。你可能想在被击中之前用 MVC 快速重写你的应用程序 :)
于 2012-05-27T05:52:37.970 回答