2016-06-19 5 views
-2

私はJavaとSwingを使い慣れています。私はjframeを作成し、メニューバーにMenuItemを追加しました。jtextfieldはjdialogを閉じた後にjdialogの値を保持します

メニュー項目をクリックすると、jdialogが開きます。今、jdialogにはjtextfieldとjlabelがあります。今私の問題は 'ダイアログが初めて開かれたときに、テキストフィールドが空で正しいものです。今はjdialogを閉じてもう一度開きますが、jdialogで空のテキストフィールドを取得する代わりに、jdialogsのデフォルトのclose操作のプロパティが 'dispose'に設定されているため、以前に入力したデータを取得します。しかし、それは私のために起こっていません...

私は間違って何をしているのか分かりません。私は他の方法(私の最初のデモ学習プログラムとしてこれを考慮する)ここ

Second Image here

+1

代わりに 'JOptionPane.showInputDialog(..)'を使用することを検討してください。ダイアログの場合は、新しいものを作成するか、テキストフィールドへの参照を保持して(望ましい)、空白にしてから開きます。しかしもっと早く助けを求めるには、[MCVE]または[短く、自己完結型の正しい例](http://www.sscce.org/)を投稿してください(スクリーンショットはほとんど知られていません)。 –

+0

ここに私の正確な問題:https://www.youtube.com/watch?v=6mfFOG5szvw – pratik

+0

あなたの正確な問題は、JavaコードとYouTubeのビデオを区別することができないということです。私たちはそれを手助けすることはできません。 –

答えて

0

JTextField

Image 第二の画像にする前に、アプレット/スイングを試したことがない「は、にISNので、それが価値だ保持されますトンではなく、親だとして隠されている、JDialog閉鎖によって影響される(JDialog)は、子コンポーネントを再初期化されていない処分するダイアログを設定

見えません彼らはその価値を保ちます。この動作に関するいくつかの追加情報がここにあります:あなたは防ぐことができます


一つの方法/これはとテキストフィールドを拭くためにダイアログを「通知」である制御しますWindowEventを追加し、windowClosing()メソッドに必要な機能を提供することで終了します。

のNetBeansのGUIビルダーは、以下にあなたのためにこれを生成します。

  • は、右のダイアログをクリックし
    • イベント
      • WindowClosingウィンドウ
    • 提供

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

を:textfield.setText("");テキストフィールドをクリアする


別のアプローチは、独自のダイアログを作成することであるとのコンポーネントを設定しますコンストラクタ。新しいインスタンスを作成すると、デフォルト値を持つコンポーネントが含まれ、効果的にリセットされます。

関連する問題