代码之家  ›  专栏  ›  技术社区  ›  Stanley Mungai

从禁用的JTextField获取文本

  •  1
  • Stanley Mungai  · 技术社区  · 12 年前

    我一直在使用函数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 回复  |  直到 12 年前
        1
  •  3
  •   assylias    12 年前

    下面的代码按预期工作(无论文本字段是启用还是禁用,都会打印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);
    }
    
        2
  •  2
  •   Dan D.    12 年前

    你肯定可以从残疾人那里获得文本 JTextField 使用您指定的代码。在其他地方搜索该问题。