我有一个扩展JFrame的类,并且它具有BorderLayout。它具有两个JPanel类型的私有(private)实例变量。它们代表按钮面板,分别称为flipButton和confidenceButtons。当您单击按钮时,按钮面板被另一个按钮面板代替。也就是说,如果您在flipButton中单击一个按钮,flipButton将替换为confidenceButtons。我试图这样做:

私有(private)类FlipListener实现ActionListener {
公共(public)无效actionPerformed(ActionEvent e){
remove(flipButton);
添加(confidenceButtons,BorderLayout.SOUTH);
证实();
...
}
}
私有(private)类ColorListener实现ActionListener {
...
公共(public)无效actionPerformed(ActionEvent e){
...
remove(confidenceButtons);
添加(flipButton,BorderLayout.SOUTH);
证实();
}
}

flipButton中的按钮具有FlipListeners,confidenceButtons中的按钮具有ColorListeners。程序运行时,单击按钮将删除面板,但是没有添加任何内容来替换它。我究竟做错了什么?

编辑

事实证明CardLayout是一个简单易用的解决方案。事实证明,上面的代码确实有效。问题出在我代码的另一部分。 >。

最佳答案

使用CardLayout,如图here所示。

09-27 06:29