2012-08-23 53 views
0

我一直使用函數getText()來讀取MyJTextField中的用戶輸入直到我注意到這對於禁用的JTextField看起來不可能。從已禁用的JTextField獲取文本

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

這不返回任何東西,我開始認爲這是因爲禁用JTextField。有沒有辦法從殘疾JTextField獲取文本或我應該只是:

jtx.setEditable(false); 

我不想這樣做。我希望該字段被禁用。

+0

您是否試圖在包含禁用的文本字段的簡單應用中重新創建此問題? – funkybro

+0

爲了儘快提供更好的幫助,請發佈[SSCCE](http://sscce.org/)。另一方面,誰把文字放在字段中並禁用它? –

回答

3

下面的代碼按預期工作(打印測試文本字段是啓用還是禁用) - 您是否在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中獲取文本。在其他地方搜索該問題。