我编写了一个程序,可以在搜索框中输入查询,然后单击按钮进行搜索。不过,他也可以通过按 Enter 键启动搜索。 按钮的代码是
b.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
search_handler();
}
});
现在,按 Enter 键即可成功启动搜索,但单击按钮不起作用。我已经放置了
System.out.println("method called");
在 search_handler() 方法内部验证单击按钮是否实际调用它,每次单击按钮时它都会被打印,但我没有看到任何结果弹出。 我无法理解为什么从两个不同的地方调用相同的方法时会有不同的行为。 任何帮助将不胜感激。
最佳答案
您的代码显示您向按钮添加了自定义监听器,因此您还必须为文本字段添加一些其他自定义代码。如果此代码不同,您可能会得到不同的结果。
相反,应该将相同的 ActionListener 添加到按钮和文本字段。这样,如果用户在焦点位于文本字段时使用 Enter 或使用鼠标单击按钮,将执行相同的代码。
所以你的代码应该类似于:
ActionListener al = new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
// do something
}
});
button.addActionListener( al );
textField.addActionListener( al );
关于java - 单击 JButton 时未启动搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44502663/