java - 当卡片布局中的面板出现时如何执行某些操作

标签 java swing cardlayout

我有一个带有卡片布局的应用程序,其中包含许多面板表单。我使用标签来显示每个面板中的表单状态。我想确保每当打开面板时,所有标签都会被清除,但由于在卡片布局中,面板不会每次都重新创建,而是只是打开,我似乎不知道如何操作。有什么特殊的方法可以做到吗?

最佳答案

您可以向面板添加一个Hierarchy Listener。只要面板在 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
    }
}

关于java - 当卡片布局中的面板出现时如何执行某些操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29690420/

相关文章:

java - 更改 Java 中的标准 servlet 构造函数

java - Java 满足条件后停止循环

java - 通过 JFrame 添加到 ArrayList 时出现 NullPointerException 错误

java - 在线程 "AWT-EventQueue-0"java.lang.ArrayStoreException 中收到异常

java - 如何在使用 CardLayout 切换后启动 JPanel

java - 卡片布局问题

java - Spinner 不使用 API 23 中的 onItemSelected 方法

java - HQL 查询中的语法错误 "unexpected token"

java - 为什么在 Java 中使用 BufferStrategy 和 Swing Timer 时会出现空指针异常?

java - 如何在jframe上的java swing面板之间切换?