我正在使用ServerSocket端口仅运行我的Java Swing应用程序的一个实例,因此,如果用户尝试打开该程序的另一个实例,我将向他显示“另一个实例已打开”警告。效果很好,但我不想像显示某些程序一样将焦点集中在正在运行的应用程序本身上,而不是显示此消息(MSN Messenger),即使已将其最小化了。
有针对各种操作系统的解决方案吗?
最佳答案
由于您使用服务器套接字,因此我假设您使用java.net.BindException来检测您的应用程序已在运行。如果您启动第二个实例,则可以发送一条控制消息,指示您第一个应用在退出前进行规范化(如果最小化)。
if (msg == BRING_TO_FRONT ) {
frame.setState(Frame.NORMAL);
frame.toFront();
}