在 Windows 任务栏上显示 JDialog
我正在尝试在 Windows 中显示 。如何在我的 Windows 任务栏上显示(类似 )?JDialog
JDialog
JFrame
我正在尝试在 Windows 中显示 。如何在我的 Windows 任务栏上显示(类似 )?JDialog
JDialog
JFrame
对话框本身不能具有任务栏条目,但可以构造一个没有任何可见效果的框架,并将其用作对话框的父级。然后,对话框将看起来像有一个任务栏条目。下面的代码演示如何执行此操作:
class MyDialog extends JDialog {
private static final List<Image> ICONS = Arrays.asList(
new ImageIcon("icon_16.png").getImage(),
new ImageIcon("icon_32.png").getImage(),
new ImageIcon("icon_64.png").getImage());
MyDialog() {
super(new DummyFrame("Name on task bar", ICONS));
}
public void setVisible(boolean visible) {
super.setVisible(visible);
if (!visible) {
((DummyFrame)getParent()).dispose();
}
}
}
class DummyFrame extends JFrame {
DummyFrame(String title, List<? extends Image> iconImages) {
super(title);
setUndecorated(true);
setVisible(true);
setLocationRelativeTo(null);
setIconImages(iconImages);
}
}
我找到了你问题的答案,因为我有相反的问题。我有一个JDialog显示在任务栏中,我花了很长时间才弄清楚如何防止它显示。事实证明,如果将空
父级传递给 JDialog 构造函数,则对话框将显示在任务栏中。
JDialog dialog = new JDialog((Dialog)null);
强制转换为是为了避免构造函数不明确。java.awt.Dialog