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