有没有一种方法可以知道内部框架的焦点在桌面窗格中何时更改为不同的焦点?

时间:2017-03-29 12:05:13

标签: java swing focus jinternalframe jdesktoppane

我有JDesktopPane,可以创建多个JInternalFrame组件。桌面保留了每个内部框架需要知道的一些变量,因此每次单击内部框架时,都需要检查桌面变量并复制它们。创建内部框架时,我可以复制它们,但是一旦创建了框架,我就不知道如何在每次单击时检查变量。

问题是,如果我在内部框架上使用监听器,我无法使用桌面方法,而且从桌面我不知道如何检查内部框架是否已经单击(因为它在运行时创建内部框架)。我想的是在JDesktopPane中使用复制变量的方法,并在每次点击任何内部框架时调用(例如,如果点击桌面的任何部分),但我不知道当内部框架被阻挡时(如果有任何内容框架),知道在桌面上触发了什么事件。

那么,每次选择内部框架时,桌面窗格(或任何地方)上是否有任何方法被激活?

1 个答案:

答案 0 :(得分:3)

  

但我不知道当内部帧被阻塞时桌面会触发什么事件

您可以使用InternalFrameListener

阅读How to Write and InternalFrameListener上Swing教程中的部分,了解更多信息和工作示例。

  

我无法使用桌面方法

为什么不呢?

您可以使用内部框架的getDesktopPane()方法获取桌面窗格。