我有一个包含2个面板的J框架,我可以使用Visible在它们之间切换,但我希望它们出现在相同的位置和相同的尺寸。
答案 0 :(得分:1)
使用CardLayout交换JPanel。可以在此处找到该教程:CardLayout tutorial。
当你这样做时,你需要设置一个JPanel来使用CardLayout,它将保存你的另外两个JPanel。您需要使用带有String常量的JPanel将这些JPanel添加到CardLayout,以便CardLayout能够使用String识别视图。例如:
CardLayout cardLayout = new CardLayout();
JPanel cardHoldingPanel = new JPanel(cardLayout);
// .....
然后将两个视图添加到上面:
cardHoldingPanel.add(viewPanelOne, "one");
cardHoldingPanel.add(viewPanelTwo, "two");
然后交换视图,如果你只有两个JPanels,你只需在CardLayout对象上调用next(...)
cardLayout.next(cardHoldingPanel);
要显示特定视图,您需要使用String常量来添加视图并在CardLayout对象上调用show(...)
:
cardLayout.show(cardHoldingPanel, "one");