打开两个面板

我有一个包含2个面板的J框架,我可以使用Visible在它们之间切换,但我希望它们出现在相同的位置和相同的尺寸。

使用CardLayout交换JPanel。 可以在这里找到该教程: CardLayout教程 。

当你这样做时,你需要设置一个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");