Swing:当Component isDisplayable()变为false时如何拦截

时间:2017-03-06 09:24:45

标签: java swing

我的情景: 我在JEditorPane注册了一些ObjectManager来执行以下操作:

public MyPane extends JEditorPane{

public MyPane(Parent parent)
  {
   super();
  parent.getObjectManger().registerManagedPanes(this);
   }
}

任何时候代码创建它都会将自己注册到Manager。

我需要在MyPane不可用时取消注册,这意味着什么时候

MyPane.isDisplayable() == false

我需要类似的东西

//MyPane
parent.getObjectManger().unregisterFromManagedPane(this);

通过查看Component实施,基本上isDisplayable()peernull时返回false。我不想这么深,有任何JComponent(或任何其他超级或扩展对象)的方法我可以覆盖以获得类似的行为

//MyPane
@Override
public FooOrVoid lookingForThisMethod()
{
  if (!isDisplayable())
{
    parent.getObjectManger().unregisterFromManagedPane(this);
}
return super();
}

如果这种做法有误,还有其他方法来归档这种行为吗?

Thanx in advice

0 个答案:

没有答案