我在我的 java 应用程序中使用了系统托盘。我想消失 GUI并在后台运行应用程序,但是当用户单击JFrame的关闭按钮时,系统托盘必须保持可用。
3 回答
我想消失 GUI 并在后台运行应用程序,但是当用户单击 JFrame 的关闭按钮时,系统托盘必须保持可用。
- 为 ,设置适当的JFrames 方法
DefaultCloseOperation
,JFrame.setDefaultCloseOperation(HIDE_ON_CLOSE)
默认在 API 中实现
设置用户在此框架上启动“关闭”时默认发生的操作。您必须指定以下选项之一:
DO_NOTHING_ON_CLOSE(在WindowConstants中定义):什么都不做;要求程序在注册的WindowListener对象的windowClosing方法中处理操作。
HIDE_ON_CLOSE(在 WindowConstants 中定义):在调用任何注册的 WindowListener 对象后自动隐藏框架。
DISPOSE_ON_CLOSE(在 WindowConstants 中定义):在调用任何已注册的 WindowListener 对象后自动隐藏和处置框架。
EXIT_ON_CLOSE(在 JFrame 中定义):使用系统退出方法退出应用程序。仅在应用程序中使用它。
该值默认设置为 HIDE_ON_CLOSE。更改此属性的值会触发属性更改事件,属性名称为“defaultCloseOperation”。
然后从
SystemTray
调用JFrame.setVisible(true)
,此事件可从
将此作为答案发布
就像 MadProgrammer 说的:
不要将框架设置为 EXIT_ON_CLOSE 或在框架关闭时调用 System.exit。事件调度线程将继续运行,直到 JVM 终止
您可以在单独的线程中使用系统托盘。