Swing ActionListener';s、 按钮和JPanel

Swing ActionListener';s、 按钮和JPanel,swing,applet,jpanel,jbutton,actionlistener,Swing,Applet,Jpanel,Jbutton,Actionlistener,我有5个类扩展了JPanel,其中至少有一个JButton用于“导航”。所有这五个类最终都将成为一个交互式小程序(我知道小程序是过时的,但我不得不使用它们…),当我单击一个按钮时,我想将当前面板的可见性设置为false,并将另一个面板的可见性设置为true。是否可以将操作侦听器添加到扩展JPanel并在其中处理事件的类中?例如,下面是我的构造函数的一个小片段: 注意在我添加的行中,我收到一条警告,上面写着“这在构造函数中泄漏” 行动听众 public MainPanel() { supe

我有5个类扩展了JPanel,其中至少有一个JButton用于“导航”。所有这五个类最终都将成为一个交互式小程序(我知道小程序是过时的,但我不得不使用它们…),当我单击一个按钮时,我想将当前面板的可见性设置为false,并将另一个面板的可见性设置为true。是否可以将操作侦听器添加到扩展JPanel并在其中处理事件的类中?例如,下面是我的构造函数的一个小片段:

注意在我添加的行中,我收到一条警告,上面写着“这在构造函数中泄漏” 行动听众

public MainPanel()
{
    super();
    setLayout(new BorderLayout());

    search = new JButton("Proceed to Search");
    manager = new JButton("Proceed to Manager Logon");
    search.addActionListener(this);
    manager.addActionListener(this);
}
是创建每个面板的实例,然后将它们添加到我的主小程序并从中处理事件的唯一其他选项吗?这意味着什么。目前,我所有的面板都有我想要的设计(一堆BorderLayout,其子面板包含其他GUI元素)。我唯一剩下的任务就是创建用户功能


谢谢大家!!这个网站上的答案非常出色!:)

请显示实际的错误消息,而不是对其进行解释。顺便提一下,这个问题的规范解决方案是使用CardLayout并简单地交换JPanel。另外,您不希望GUI类实现侦听器接口。这对于小型玩具程序来说是可以的,但对于更复杂的大型程序来说则不行,这将使维护更加困难。对于侦听器代码,最好使用匿名或私有内部类,甚至是独立的控制类。嘿,谢谢你的想法。如何将面板添加到CardLayout?JavaDocs上的CardLayout API不是很有用。我有一个小程序,我将布局设置为CardLayout,我想这样做:添加(mainView);添加(managerView);添加(搜索视图);添加(storesView);添加(小时视图);mainView、managerView、searchView、storesView和hoursView都是我扩展JPanelI的课程,我将发布我的新问题,而不是将其留在这里查看