Java 关闭前从JDialog内的JPanel读取数据

Java 关闭前从JDialog内的JPanel读取数据,java,swing,jpanel,dispose,jdialog,Java,Swing,Jpanel,Dispose,Jdialog,我必须在JDialog中显示一个Jpanel,到目前为止我已经处理了它,但是我不知道如何在处理它之前关闭对话框并接收Jpanel中的数据 newButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent event) { JDialog dialog = new JDial

我必须在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.close()
在我在jPanel内单击close之前已经过测试,而它应该等待实际的close值发生变化。

您可以使用这样的代码来获取容器窗口实例(
JDialog


显示您用于按钮的代码。另外,您可能想看看JPanel中的按钮是一个简单的:private void closeJButtonActionPerformed(java.awt.event.ActionEvent evt){close=true;}谢谢。。我使用了getWindowAncenter方法并正确地关闭了父对话框。
JDialog parentDialog=(JDialog)SwingUtilities.getWindowAncestor(jPanel);