【问题标题】:Get Text From a disabled JTextField从禁用的 JTextField 获取文本
【发布时间】:2012-08-23 10:04:32
【问题描述】:

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

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

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

jtx.setEditable(false);

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

【问题讨论】:

  • 您是否尝试在一个简单的应用程序中重新创建此问题,该应用程序包含禁用的文本字段而没有其他内容?
  • 如需尽快获得更好的帮助,请发布SSCCE。顺便说一句,谁在字段中放置文本并禁用它?

标签: java swing jtextfield


【解决方案1】:

下面的代码按预期工作(打印 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】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-19
      • 2013-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-25
      相关资源
      最近更新 更多