仅允许一个JInternalFrame实例

wis*_*man 2 java swing single-instance jinternalframe

我创建了一个包含多个JInternalFrame的Swing应用程序,在单击鼠标时会将其添加到JDesktopPane.我想只有一个实例中的相同的内部框架 是存在于DesktopPane.当用户打开框架时,我不希望同一帧出现两次.如果框架已打开,则应显示错误消息.

非常感谢 :)

Juv*_*nis 6

我已经创建了一个包含多个JInternalFrame的Swing应用程序......

我只想要一个相同内部框架的实例......

因此,将Singleton模式应用于每个JInternalFrame子类.如果类符合单例模式,则只能使用类的一个实例.


Hov*_*els 5

不要打扰单身反模式.相反,只需为您的类提供一个JInternalFrame字段,并在类的构造函数或变量声明中创建一个 JInternalFrame 实例,并且不要在鼠标单击时创建一个新实例,而是显示已经创建的实例.例如,在mousePressed方法中,只需调用即可myInternalFrame.setVisible(true).这样,如果它是不可见的,现在它是可见的,如果它已经可见,那么它仍然是可见的和不变的.简单明了.