java - 检测 JTextField 中的 Enter 键并在 actionperformed 中执行某些操作

标签 java swing actionlistener

正如我所见,对于像我这样的入门级学生来说,许多答案都太晦涩了。

我按照首先将 addActionListner(this) 添加到我的 JTextField 的步骤进行操作。

我接下来要做的最令人困惑的事情是:

public void actionperformed(Actionevent ae){
     if(ae.getSource() == "Enter pressed")
         {
          outArea.setText(result);
         }
}

这不起作用,因为我觉得代码 ae.getSource() == "Enter presses" 无法正常工作,甚至我用简单的打印行替换了在 actionPerformed 下采取的操作像 System.out.println("working") 这样的命令,它不会执行。

如果按下按钮,我会执行以下操作。

    public void actionperformed(Actionevent ae){
     if(ae.getSource() == "JButton")
         {
          System.out.println("JButton was pushed");
         }
}

无论如何,假设我有一个 GUI,其中包含如下所示的一段给定代码:

  public static void main(string[] args){
 new myProg();
 } 
  public myProg(){
  ....
  buildTheGUI();
  ...}

           }
//GUI Objects
 ...
JTextField input = new JTextField(10);
 ...

//method building the GUI

public void buildTheGUI(){
...
input.addActionListner(this);
...

//a method called actionPerformed
public void actionperformed(Actionevent ae){
}

我现在尝试通过 actionListner 检测输入键,而不是通过任何其他方法,因为它是给定的。

最佳答案

首先,actionPerformed由操作事件触发,通常在大多数系统上,这是由 Enter 键触发(上下文为 JTextField )...所以您不需要检查它。

其次,source ActionEvent的通常是触发它的控件,即 JTextField在这种情况下。

第三,String Java 中的比较是通过 String#equals 完成的方法...

 if ("Enter presses".equals(someOtherString)) {...

关于java - 检测 JTextField 中的 Enter 键并在 actionperformed 中执行某些操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22471796/

相关文章:

java - 如何使用java将三个表连接成一个表以及set方法值应该写在哪里

java - "Seekable"与 MediaRecorder Android 6.0 (API 23) 一起使用的文件描述符

java - 使用 Swing 组件将文本发送到另一个对象

java - 具有多个相同元素的 JComboBox 始终选择元素的第一个实例

java - 不支持 Path.isConvex。 Android Studio - 切换按钮

Java:线程中断时更改对象属性

java - 如何限制 JTable 中的输入?

java - 如何让按钮setText hibernate ?

Java - Actionlistener 由于我看不到的原因而显示错误

java - 按钮事件动画