1

JDialog内にJpanelを表示する必要があり、これまではJDialogを処理しましたが、ダイアログを閉じてJpanel内のデータを受信して​​から破棄する方法がわかりません。

    newButton.addActionListener(new ActionListener()
    {
        @Override
        public void actionPerformed(ActionEvent event)
        {
             JDialog dialog = new JDialog(Main.getMainFrame(), true);
            JPanel jPanel = new JPanel();
            dialog.getContentPane().add(jPanel);
            dialog.setMinimumSize(new Dimension(600, 800));
            dialog.setVisible(true);
            if (jPanel.close)
            {
                /*read some useful information from the jpanel*/
                dialog.setVisible(false);
                dialog.dispose();
            }
        }
    });

これまでのところ、ブール値のclose = trueを設定するボタンをJpanel内に配置し、ダイアログがそれを読み取ってそれ自体を破棄します。ただし、これは機能しませんjPanel.close()。実際のクローズ値が変更されるのを待つ必要がある間、JPanel内で閉じるをクリックする前にテストされていると思われます。

4

1 に答える 1

2

このようなコードを使用して、コンテナウィンドウインスタンスを取得できます(JDialogこの場合)

JDialog parentDialog=(JDialog)SwingUtilities.getWindowAncestor(jPanel); 
于 2013-01-29T09:28:32.403 に答える