1

我必须在 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();
            }
        }
    });

到目前为止,我已经在 J​​panel 中放置了一个按钮,它设置了一个 boolean close = true 并且对话框读取它并自行处理。但是这不起作用:我怀疑jPanel.close()在我单击 JPanel 内的关闭之前已经测试过,而它应该等待实际的关闭值发生变化。

4

1 回答 1

2

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

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