2016-06-19 5 views
-2

Java 및 Swing을 처음 사용합니다. jframe을 만들었고 메뉴 상자와 MenuItem을 추가했습니다.jtextfield는 jdialog를 닫은 후 jdialog에서 값을 유지합니다.

메뉴 항목을 클릭하면 jdialog가 열립니다. 이제 jdialog에는 jtextfield와 jlabel이 있습니다. 이제 나를위한 문제는 '대화 상자가 처음 열릴 때 텍스트 필드가 비어 있고 올바른 것입니다. 이제는 jdialog를 닫고 다시 열지 만 jdialog에서 빈 텍스트 필드를 얻는 대신 jdialogs의 '기본 닫기 연산'속성이 '처분'으로 설정되어 있기 때문에 이전에 입력 한 데이터를 가져옵니다. 하지만 그건 나를 위해 일어나지 않습니다 ...

내가 뭘 잘못하고 있는지 모르겠다. 나는 다른 방법으로 (처음 데모 학습 프로그램으로이 고려) 여기

Second Image here

+1

대신 'JOptionPane.showInputDialog (..)'를 사용하는 것이 좋습니다. 대화 상자에 관해서는 새로운 텍스트 필드를 만들거나 텍스트 필드에 대한 참조를 유지하고 열기 전에 빈칸으로 설정하십시오. 그러나 더 빨리 도움을 받으려면 [MCVE] 또는 [단편, 자체 포함, 올바른 예] (http://www.sscce.org/)를 게시하십시오 (알 수있는 가치가 거의없는 스크린 샷과는 대조적 임). –

+0

여기 내 정확한 문제 : https://www.youtube.com/watch?v=6mfFOG5szvw – pratik

+0

정확한 문제는 자바 코드와 YouTube 동영상을 구분할 수 없다는 것입니다. 우리는 그 일을 도울 수 없습니다. –

답변

0

JTextField

Image 두 번째 이미지에서 전에 애플릿/스윙을 해본 적이는 '그것이 잘못되고 있기 때문에 가치의 유지됩니다 JDialog의 영향을 받고 대신 부모 (JDialog)가 숨겨져 있습니다.

처분 할 대화 상자를 설정하면 하위 구성 요소가 다시 초기화되지 않습니다. 그래서 그들은 그들의 가치를 지킨다. 이 동작에 대한 몇 가지 추가 정보는 여기에서 볼 수 있습니다 :


한 가지 방법은 당신이/방지이 같은 텍스트 필드를 닦아 대화 "를 알리는"입니다 제어 할 수 있습니다 WindowEvent을 추가하고 windowClosing() 방법에 필요한 기능을 제공하여 마감합니다.

넷빈즈 GUI 빌더는 다음과 같이 당신을 위해 이것을 생성합니다

  • 오른쪽 대화 상자를 클릭
    • 이벤트
      • 의 windowClosing 창
    • ,

제공 :

private void jDialog1WindowClosing(java.awt.event.WindowEvent evt) {          
    // TODO add your handling code here: 
} 

어떤에서 당신은 추가 할 수 있습니다 textfield.setText("");를 텍스트 필드


또 다른 방법은 자신의 대화 상자를 생성하고있는 구성 요소를 설정하는 것입니다

을 취소 건설자.새 인스턴스를 만들 때 기본값을 사용하여 구성 요소가 포함되므로 효율적으로 재설정합니다.