在此 Java Swing 应用程序中,需要根据用户操作将 JFrame 中的 JPanel 与另一个 JPanel 进行交换。为了探索实现此目的的适当方法,测试了以下代码:
panel = new CustomJPanelWithComponentsOnIt(); parentFrameJPanelBelongsTo.pack();
但是,此方法无法切换面板。
解决方案:利用 CardLayout
此场景的理想解决方案在于利用 CardLayout,这是一种布局管理器,可以显示多个面板,同时有选择地在给定时间仅显示一个面板。
要实现 CardLayout,请执行以下步骤可以采取:
创建一个 CardLayout 对象:
CardLayout cardLayout = new CardLayout();
设置将容纳面板的容器的布局(例如, JFrame):
parentFrameJPanelBelongsTo.setLayout(cardLayout);
使用 CardLayout 的约束将面板添加到容器中:
parentFrameJPanelBelongsTo.add(new CustomJPanelWithComponentsOnIt(), "panel1"); parentFrameJPanelBelongsTo.add(new AnotherJPanel(), "panel2");
将初始面板设置为显示:
cardLayout.show(parentFrameJPanelBelongsTo, "panel1");
根据用户交互动态更改活动面板:
cardLayout.show(parentFrameJPanelBelongsTo, "panel2");
以上是如何在 JFrame 中动态交换面板?的详细内容。更多信息请关注PHP中文网其他相关文章!