2016-06-21 6 views
0

私は基本的なSwingアプリケーションを作成しています。私はJFrameJTableを持っています)を持っています。このウィンドウにはレコードボタンが追加されていますが、データフィールドがほとんどないウィンドウを開くと、JDialogウィンドウが開きます。一度使用すると、それらのフィールドの値が入力されます。これらの情報をJTableにレコードとして追加する必要があります(JFrame)。閉じるJDialogオブジェクトからJframeオブジェクトを呼び出す

これを行うには、JFrameウィンドウを開きます。ユーザーが「追加」ボタンを押すと、 JDialogboxウィンドウが開きます(JFrameはまだバックグラウンドで開いています)。その後、ユーザーはいくつかの情報を入力し、JFrameに戻す必要があります。

新しいJFrameオブジェクトを作成せずにこれを行うにはどうすればよいですか。 JDialogボックスコンストラクタで親要素を使用する方法はありますか?

(javax.swing.JFrame parent, boolean modal) 
+0

あなたは 'JDialog'について話していますか? – Sanjeev

+0

はい、主にJDialogからJFrameへの通信方法 – Asl506

答えて

1

ここでは、フレーム上でコールバックメソッドを使用して必要なものを実現する方法を示すコードのスケルトンを示します。

public class DataBean{ 
    // keep all variables that needs to be transferred 
} 

public class MyFrame extends JFrame { 
     // Frame code here 

    public void openDialog() { 
      new MyDialog(this,true).setVisible(true); 
    } 

    public void addRowToTable(DataBean data) { 
     // add row to table from data 
    } 
} 

public class MyDialog extends JDialog { 
    // Dialog display code 

    DataBean data = new DataBean(); 
    // populate DataBean object from dialog fields 
    // dispose dialog 
    // call method to pass 
    ((MyFrame)getOwner()).addRowToTable(data); 
} 

これが役に立ちます。

+0

ありがとう、これは私が欲しかったものです。 – Asl506

+0

あなたを助けてくれてうれしいです。楽しいコーディングを持っている:) – Sanjeev

関連する問題