我target
在 MainFraim 中有一个主 JPanel 和另一个currentView
添加到target
面板中的 JPanel。target
面板包含带有侦听器的按钮。然后假设这些侦听器更改curretView
面板的内容,如下所示:
private JPanel currentPanel;
public void setView(String type) {
if (type.equals("overall")) {
this.currentPanel = getOverallView();
frame.setTitle("BookingCalendar - Overall View");
frame.validate();
} else if (type.equals("guest")) {
this.currentPanel = getGuestView();
frame.setTitle("BookingCalendar - Room View");
frame.validate();
} else if (type.equals("room")) {
currentPanel.removeAll();
this.currentPanel = getRoomView();
frame.setTitle("BookingCalendar - Guest View");
frame.validate();
}
}
我调用的每个方法每次调用时都会返回新的 JPanel:
JPanel currentPanel = new JPanel(new MigLayout("","20 [grow, fill] 10 [grow, fill] 20", "20 [] 10 [] 20"))
问题是,每当我调用这些方法时,面板都不会改变。它始终保持不变(默认情况下getOverallView()
:)
我已经尝试在两个框架以及面板上进行无效、验证、重绘,但没有发生任何变化。有人可以详细说明我需要做什么才能完全改变面板的内容吗currentView