从禁用的JTextField获取文本

时间:2012-08-23 10:04:33

标签: java swing jtextfield

我一直在使用函数getText()来读取MyJTextField中的用户输入直到我注意到这对于禁用的JTextField看起来不可能。

JTextField jtx = new JTextField();
jtx.setText("TEST");
jtx.setEnabled(false);
String str = jtx.getText();
System.out.println(str);

这不会返回Anything,我开始认为这是因为禁用了JTextField。有没有办法从禁用的JTextField获取文本,或者我应该只是:

jtx.setEditable(false);

我不想这样做。我希望该字段被禁用。

2 个答案:

答案 0 :(得分:3)

以下代码按预期工作(打印TEST,无论文本字段是启用还是禁用) - 您是否在EDT中运行代码?

public static void main(String[] args) throws InterruptedException {
    Runnable r = new Runnable() {
        @Override
        public void run() {
            JTextField jtx = new JTextField();
            jtx.setText("TEST");
            System.out.println("Before: " + jtx.getText());
            jtx.setEnabled(false);
            System.out.println("After: " + jtx.getText());
        }
    };
    SwingUtilities.invokeLater(r);
}

答案 1 :(得分:2)

您绝对可以使用您指定的代码从已禁用的JTextField获取文本。在其他地方搜索问题。