单击托盘图标时,我需要恢复隐藏的窗口。我实际上已经找到了部分解决方案:
tray_icon.addMouseListener(new MouseListener() {
@Override
public void mouseClicked( MouseEvent e ) {
//Gui.this refers to my frame
Gui.this.setVisible(true);
}
});
如果它在另一个窗口后面,它将显示该帧。它将框架放在顶部。但如果我最小化框架,它不会显示窗口。然而,它有点突出显示任务栏标签:
任务栏闪烁很好,但还不够:
请注意,我计划允许“最小化到托盘”功能。这意味着我甚至会完全隐藏窗口(只要Java允许)。它仍然必须能够显示出来。
答案 0 :(得分:2)
与setVisible
一起,还有其他事情要设置:
Gui.this.setState(Frame.NORMAL);
最小化时,帧的状态为Frame.ICONIFIED。
这是恢复隐藏框架的完整回调:
tray_icon.addMouseListener(new MouseListener() {
@Override
public void mouseClicked( MouseEvent e ) {
Gui.this.setVisible(true);
Gui.this.setState (Frame.NORMAL);
}
}
这就是我用来隐藏窗口和任务栏面板(最小化到托盘):
this.addWindowListener(new WindowAdapter()
{
@Override
public void windowIconified(WindowEvent event) {
//Hides it from screen
Gui.this.setState(Frame.ICONIFIED);
//Hides it from taskbar and screen
Gui.this.setVisible(false);
}
});