在关闭之前从JDialog内部的JPanel读取数据

时间:2013-01-29 09:17:00

标签: java swing jpanel dispose jdialog

我必须在JDialog中显示一个Jpanel,到目前为止我处理它但是我不知道如何关闭对话框并在处理它之前接收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();
            }
        }
    });

到目前为止,我已经在Jpanel中放了一个按钮,它设置了一个布尔值close = true,对话框会读取它并处理它自己。但是这不起作用:我怀疑在我点击JPanel内部之前jPanel.close()已经过测试,而它应该等待实际的接近值改变。

1 个答案:

答案 0 :(得分:2)

您可以使用这样的代码来获取容器窗口实例(在我们的例子中为JDialog

JDialog parentDialog=(JDialog)SwingUtilities.getWindowAncestor(jPanel);