当卡片布局中的面板出现时如何做某事

时间:2015-04-17 04:37:10

标签: java swing cardlayout

我有一个卡片布局的应用程序,其中包含许多面板表单。我使用标签在每个面板中显示表单状态。我想确保无论何时启动面板,所有标签都会被清除,但由于卡片布局中每次都没有重新创建面板,而是刚刚提出,我似乎无法弄清楚如何。有什么特别的方法可以做到吗?

1 个答案:

答案 0 :(得分:2)

您可以在面板中添加HierarchyListener。只要面板在CardLayout中可见,就会调用监听器:

@Override
public void hierarchyChanged(HierarchyEvent e)
{
    JComponent component = (JComponent)e.getSource();

    if ((HierarchyEvent.SHOWING_CHANGED & e.getChangeFlags()) != 0
    &&  component.isShowing())
    {
        // add your code here
    }
}