如何在java中使用文本字段

时间:2014-04-19 02:01:44

标签: java actionlistener textfield

我只是有一个关于如何在Java中使用文本字段的基本问题。这很简单,但我一直在寻找的教程和其他问题都很有帮助,我希望有人可以为我解释一些事情。< / p>

现在我有以下代码,为了示例我只是打了一对:

import javax.swing*;
public class testText {
    public static void main(String[] args){

        JFrame frame = new JFrame();
        JTextField text = new JTextField();
        frame.add(text);
        frame.setVisible(true);
        System.out.println(text.getText());
    }
}

我尝试做的只是将用户输入的内容打印到控制台的文本字段中。但是当我输入文本字段时没有任何反应。

现在,根据我所做的研究,我认为问题在于我没有使用actionListener。问题是,我真的不明白这些是如何运作的,我希望有人可以为我澄清。

我一直在使用this tutorial来尝试解决问题,特别是他们靠近顶部的TextDemo示例。我仍然有点不知所措,我似乎无法在不破坏程序的情况下找到使用actionlistener界面的任何方法。如果有人可以简单地直接解释如何使用actionlistener从文本字段中提取字符串然后使用它,或者将我指向其他地方,我可以找到一个简单直接的解释,我会非常感激。我现在已经打了五个小时对这个问题,我完全没有任何表现,所以我为提出这样一个基本问题而道歉,但我不知所措。

1 个答案:

答案 0 :(得分:1)

在字段中输入输入键时,将调用动作侦听器。来自JTextfield Javadoc:

  

文本字段如何消耗VK_ENTER事件取决于是否   文本字段具有任何动作侦听器。如果是这样,那么VK_ENTER会导致   听众获得一个ActionEvent,而VK_ENTER事件是   消耗掉。

以下是修改后的示例以使用动作侦听器:

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JTextField;

public class testText {
    public static void main(String[] args){

        JFrame frame = new JFrame();
        final JTextField text = new JTextField();
        frame.add(text);
        frame.setVisible(true);

        text.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println(text.getText());
            }
        });
    }
}

这是面向对象的complete example,而不仅仅依赖于静态主方法。