手动关闭java swing窗口

Sha*_*era 1 java swing jframe

我有一个小游戏,当游戏结束时,一个窗口打开另一个窗口.我想只关闭窗口上的游戏.

this.dispatchEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING)); 
Run Code Online (Sandbox Code Playgroud)

但这关闭了两个窗口.如何只关闭第二个窗口?

mil*_*lez 5

它可以通过窗口本身从游戏中关闭

this.dispose();
Run Code Online (Sandbox Code Playgroud)

或隐藏的

this.setVisible(false);
Run Code Online (Sandbox Code Playgroud)

您还可以更改关闭行为(假设默认为JDialog HIDE_ON_CLOSE)

this.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
Run Code Online (Sandbox Code Playgroud)

如果你需要从父级关闭它JFrame,不要使用this,而是目标对象

gameOverDialog.dispose();
Run Code Online (Sandbox Code Playgroud)