单击JButton时未启动搜索

时间:2017-06-12 15:02:00

标签: java swing jbutton

我创建了一个程序,其中一个人在搜索框中输入查询,然后单击一个按钮进行搜索。但是他也可以按Enter键启动搜索。 该按钮的代码是

  b.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e){
        search_handler();
        }
});

现在,在点击输入时成功启动搜索,但点击该按钮则无法正常工作。我已经放了

System.out.println("method called");

在search_handler()方法中验证点击按钮是否实际调用它,每次点击按钮都会打印出来,但是我没有看到任何结果弹出。 我无法理解为什么当从两个不同的地方调用时,同一方法的行为会有所不同。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

您的代码显示您向按钮添加自定义侦听器,因此您还必须为文本字段提供一些其他自定义代码。如果此代码不同,则可能会有不同的结果。

相反,应该在按钮和文本字段中添加相同的ActionListener。这样,如果用户在焦点位于文本字段时使用Enter或使用鼠标单击按钮,则将执行相同的代码。

因此,您的代码应该类似于:

ActionListener al = new ActionListener()
{
    public void actionPerformed(ActionEvent e)
    {
        // do something
    }
});

button.addActionListener( al );
textField.addActionListener( al );