【发布时间】:2021-02-11 17:12:37
【问题描述】:
使用HIDE_ON_CLOSE 配置的JDialog 在关闭后变得不可见。但它在 Windows 任务栏的预览预览中仍然可见。只有在主窗口被最小化和再次最大化后,预览才会被纠正。当然可以处理对话框而不是隐藏它,但这不是我的目标。
- 这是 Java Swing 错误吗?
- 是否可以强制刷新任务栏预览?
- 还有其他解决方法吗?
代码示例:
public static void main( String[] args ) throws Exception {
JFrame frame = new JFrame();
frame.setTitle( "frame" );
frame.setSize( 700, 700 );
frame.setVisible( true );
frame.setDefaultCloseOperation( JDialog.EXIT_ON_CLOSE );
JDialog d = new JDialog( frame ); // modeless dialog
d.setTitle( "dialog" );
d.setSize( 300, 300 );
d.setDefaultCloseOperation( JDialog.HIDE_ON_CLOSE );
d.setVisible( true );
}
【问题讨论】:
-
无法重现相同的行为(JDK1.8),不显示JDialog。
-
我可以重现这种行为(Oracle JDK 15)。关闭后预览时显示 JDialog。我使用
invokeLater()测试了代码以在 EDT 上运行,但行为相同。 -
@Abra 这不是一个可行的解决方法。最小化和最大化主窗口对用户来说非常明显。
-
我应该提到我正在使用 OpenJDK 11 (LTS)。
标签: java windows swing user-interface jdialog