2012-08-23 2 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

아래 코드는 예상대로 작동합니다 (텍스트 필드의 사용 여부에 관계없이 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에서 텍스트를 가져올 수 있습니다. 다른 곳에서 문제를 검색하십시오.

관련 문제