我有一个GUI Java应用程序。该应用程序最小化到系统托盘。单击托盘图标时,我放置了frame.requestFocusInWindow()
,以便还原的JFrame
可以引起用户的注意。
代码如下。
trayicon.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
try {
if (e.getButton()==MouseEvent.BUTTON1) frame.setVisible(true);
frame.requestFocusInWindow();
} catch (Exception ex) {
Logger.getLogger(TrayControl.class.getName()).log(Level.SEVERE, null, ex);
}
}
});
如果我在NetBeans IDE中执行该应用程序,则此方法非常有效,但是当我构建.jar文件并执行它时,似乎无法使用
.requestFocusInWindow()
,因为该应用程序窗口无法吸引用户的注意力,并在其他窗口之后被还原。我打开的窗户。那么这里发生了什么? 最佳答案
问题解决了。我在.setExtendedState()
中使用了JFrame
的MouseListener
齿形,如下所示:
trayicon.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
try {
frame.setExtendedState(JFrame.NORMAL);
frame.setVisible(true);
} catch (Exception ex) {
Logger.getLogger(TrayControl.class.getName()).log(Level.SEVERE, null, ex);
}
}
});
关于java - .requestFocusInWindow()在构建jar时不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37094712/