【发布时间】:2018-09-04 16:34:35
【问题描述】:
我目前正在开发一个数字时钟小部件。我使用 JPanel 表单 对其进行了设计,并将其添加到 JDialog。这是代码。
static JDialog jDialog = new JDialog();
public static void main(String[] args)
{
jDialog.setUndecorated(true);
jDialog.add(new QuickLauncher());
jDialog.pack();
jDialog.setBackground(new Color(0, 255, 0, 0));
jDialog.setLocationRelativeTo(null);
jDialog.setVisible(true);
}
问题是当我运行这个程序两次时,它会打开两个窗口。所以我需要的是我只需要一个窗口来运行,如果我再次运行程序而不是再次运行程序,它需要关注应用程序。我尝试了各种示例和方法,例如isVisible() 和isActive(),但我不知道如何解决这个问题。我也试过了,
How to check if a jframe is opened?
请任何人都可以帮助我?提前致谢。
【问题讨论】:
-
仅供参考,我认为其他问题的答案不会对您有所帮助:它们正在处理来自同一应用程序的窗口(即,在同一 JVM 中运行)-您的问题是关于检测在不同实例中创建的窗口。
-
请求焦点是操作系统的事情,一个应用程序的两个实例不会像您那样共享您在代码中创建的实例,您需要例如从第一个应用程序编写一个文件作为锁,并且在第二次运行时检查锁定并显示一条消息而不是创建一个屏幕。
-
@MarcosVasconcelos 先生,我该怎么做?写一个锁文件?你能显示一些代码sn-p吗?
-
写一个文件并检查它是否存在或类似的东西
-
@MarcosVasconcelos 好的,先生,我会试一试。