我将在java教程中介绍如何在eclipse中使用windowbuilder来更改正在构建的gui的一些代码。
它说要使用鼠标右键单击我想要更改的按钮,然后在eclipse的弹出菜单中转到:
Add event handler -> action -> actionPerformed
在我的代码中带我到这个函数:
private JTextField txtGuess;
private JLabel lblOutput;
private int theNumber;
public void checkGuess() {
String guessText = txtGuess.getText();
String message = "";
int guess = Integer.parseInt(guessText);
if (guess < theNumber)
message = guess + " is too low. Try again.";
else if (guess > theNumber)
message = guess + " is too high. Try again.";
else {
message = guess + " is correct. Let's play again!";
newGame();
}
lblOutput.setText(message);
}
根据这本书,它应该将此代码添加到此部分,但它没有:
txtGuess.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
checkGuess();
}
});
如何在eclipse中修复windowbuilder,使其在需要时自动添加代码?或者我做错了什么?
1条答案
按热度按时间wgx48brx1#
那是因为
txtGuess
变量超出了方法的范围,并且未初始化。因此,他不能对其调用任何方法,也不能在其内部创建新的匿名侦听器类。编译器可以感知对txtGuess.addActionListener
将导致NullPointer
,或者根本找不到方法范围内的变量(取决于这些框架的工作方式)。请尝试以下操作:
现在再次尝试从eclipse声明侦听器。