调出卡片布局中的面板时如何做某事
How to do something when a panel in card layout is brought up
我有一个包含许多面板表单的卡片布局应用程序。我使用标签在每个面板中显示表单状态。我想确保无论何时打开一个面板,所有标签都被清除,但由于在卡片布局中,面板不是每次都重新创建,而是只是打开,我似乎无法弄清楚如何。有什么特别的方法可以做到吗?
您可以在面板中添加 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
}
}
我有一个包含许多面板表单的卡片布局应用程序。我使用标签在每个面板中显示表单状态。我想确保无论何时打开一个面板,所有标签都被清除,但由于在卡片布局中,面板不是每次都重新创建,而是只是打开,我似乎无法弄清楚如何。有什么特别的方法可以做到吗?
您可以在面板中添加 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
}
}