Java 为什么不是';当父JFrame为时,这个无模式的子JDialog是否最小化?
我的理解是,当父JFrame最小化时,其子JFrame也会最小化,但在下面的简单示例中,它不会发生(即,当JFrame最小化时,子对话框保持可见)。我错过什么了吗Java 为什么不是';当父JFrame为时,这个无模式的子JDialog是否最小化?,java,swing,jdialog,minimize,Java,Swing,Jdialog,Minimize,我的理解是,当父JFrame最小化时,其子JFrame也会最小化,但在下面的简单示例中,它不会发生(即,当JFrame最小化时,子对话框保持可见)。我错过什么了吗 public class Test { private JFrame f1; private JDialog d2; private void createAndShowGUI() { f1 = new JFrame("(parent frame)"); f1.addW
public class Test
{
private JFrame f1;
private JDialog d2;
private void createAndShowGUI()
{
f1 = new JFrame("(parent frame)");
f1.addWindowListener( new WindowAdapter()
{
public void windowClosing( WindowEvent e )
{
e.getWindow().dispose();
}
} );
f1.setBounds(32, 32, 300, 200);
d2 = new JDialog(f1, "child dialog" );
d2.setBounds(100, 100, 300, 200);
d2.setVisible( true );
f1.setVisible( true );
}
public static void main( String[] args )
{
// Schedule a job for the event-dispatching thread:
// creating and showing this application's GUI.
SwingUtilities.invokeLater( new Runnable()
{
public void run()
{
Test test = new Test();
test.createAndShowGUI();
}
} );
}
}
谢谢 尝试获取窗口[]并将其全部关闭。。。也许这在每个操作系统中都有效
private void createAndShowGUI() {
f1 = new JFrame("(parent frame)");
f1.addWindowListener( new WindowAdapter() {
public void windowClosing( WindowEvent e ) {
Window[] windows = e.getWindow().getOwnedWindows();
for (Window window : windows) {
window.dispose();
}
}
} );
你的代码对我来说很好——Windows7、Java1.6.0也适合我。JDK6u30也一样。也可以考虑<代码> StEdDebug关闭操作()/代码> Hmmm.。你们是对的。我应该在不同的操作系统上试用它。我已经确认它可以在WindowsXP(32位)JVM1.6.0_26中工作,但在同一JVM版本中它不能在Ubuntu11.04(32位)中工作。我注意到XP中的对话框是模态的,而不是非模态的。我得再挖一些。感谢您的输入。适用于Ubuntu 10.4,Oracle JVM 1.6 32位。