我正在分配作业,我需要在文本字段中输入SQL查询。用户可以按自定义的“执行查询”按钮,也可以按Enter键。当使用这两种方法中的任何一种时,都将触发一个ActionListener(不允许其他监听器)。它像编写一样简单:

if (e.getSource()=='querybutton' || e.getSource=='enter')


还是比这还更多?

正如我所说,这是一个简单的问题(我知道)。

编辑:

我可以在ActionPerformed中写为:

       public void actionPerformed(ActionEvent e)
   {
      if(e.getSource()==gui.executeQueryButton || e.getSource()==gui.enter)
      {
         String query = gui.queryText.getText();

         //more code to follow
      }
   }

最佳答案

e.getSource()实际上返回负责引发事件的对象(而不是您在创建控件时使用的变量的名称)。在这种情况下,您的按钮。原则上,您可以将e.getSource()与实际的按钮实例进行比较。但是,您实际上是否将此动作侦听器添加到了这两个按钮之外的其他按钮上?大概只需要将此侦听器添加到您想要此行为的两个按钮上即可,在这种情况下,您不必进行此if检查。

关于java - 有关ActionListener和“输入”键的简单问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5590357/

10-10 16:16