我创建了一个程序,其中一个人在搜索框中输入查询,然后单击一个按钮进行搜索。但是他也可以按Enter键启动搜索。 该按钮的代码是
b.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
search_handler();
}
});
现在,在点击输入时成功启动搜索,但点击该按钮则无法正常工作。我已经放了
System.out.println("method called");
在search_handler()方法中验证点击按钮是否实际调用它,每次点击按钮都会打印出来,但是我没有看到任何结果弹出。 我无法理解为什么当从两个不同的地方调用时,同一方法的行为会有所不同。 任何帮助将不胜感激。
答案 0 :(得分:2)
您的代码显示您向按钮添加自定义侦听器,因此您还必须为文本字段提供一些其他自定义代码。如果此代码不同,则可能会有不同的结果。
相反,应该在按钮和文本字段中添加相同的ActionListener。这样,如果用户在焦点位于文本字段时使用Enter或使用鼠标单击按钮,则将执行相同的代码。
因此,您的代码应该类似于:
ActionListener al = new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
// do something
}
});
button.addActionListener( al );
textField.addActionListener( al );