我有一个J帧,它包括两个面板,我可以使用Visible在它们之间切换,但我希望它们出现在与另一个相同的位置和大小。
使用CardLayout交换JPanels。教程可以在这里找到:CardLayout教程。
当你这样做时,你需要一个JPanel来设置为使用CardLayout,它将容纳你的另外两个JPanels。您需要使用带有字符串常量的JPanel将这些JPanel添加到CardLayout中,以便CardLayout能够使用字符串识别视图。例如:
CardLayout cardLayout = new CardLayout();
JPanel cardHoldingPanel = new JPanel(cardLayout);
// .....
然后当将您的两个视图添加到上面时:
cardHoldingPanel.add(viewPanelOne, "one");
cardHoldingPanel.add(viewPanelTwo, "two");
然后要交换视图,如果您只有两个JPanel,您可以简单地在CardLayout对象上调用next(...)
cardLayout.next(cardHoldingPanel);
要显示特定的视图,您需要用于添加视图的String常量,并在CardLayout对象上调用show(...)
:
cardLayout.show(cardHoldingPanel, "one");