gpt4 book ai didi

java - 添加到多个其他 JPanel 时 JPanel 消失

转载 作者:行者123 更新时间:2023-12-01 11:35:55 25 4
gpt4 key购买 nike

希望大家能帮我解开这个谜团。我创建了一个 JPanel,其中包含一个“返回”按钮,并且具有我喜欢的漂亮布局。我想将此 JPanel(从现在起我将其称为 homeButtonPanel)添加到其他几个 JPanel,因为我希望它们都有一个“返回”按钮。

我将 homeButtonPanel 添加到 JPanel gameRoom,然后添加到 JPanel gamePlay。当 gameRoom 在主 JFrame 中显示时,homeButtonPanel 未显示。当 gamePlay 在主 JFrame 中显示时,将显示 homeButtonPanel 。我很长时间都无法弄清楚这一点。

经过如此多的困惑和挫折后,我意识到当我注释掉将 homeButtonPanel 添加到 gamePlay 面板的行时,homeButtonPanel 将显示在 gameRoom 面板上。

为什么我无法将此 JPanel 添加到多个附加 JPanel 中?

(也供引用,如果重要的话,我使用 CardLayout 在显示的 JPanel 之间切换)

        //Set up of the GameRoom Panel
//**********************************************************************
JPanel gameRoom = new JPanel();

//create welcome label
JLabel welcomeGameRoom = new JLabel("Welcome to the GameRoom");

//create the go home button (and its panel)
JPanel homeButtonHolder= new JPanel();
JButton goHome = new JButton("Go Home");
goHome.setVisible(true);
homeButtonHolder.add(goHome);

//add the go home holder to the gameplay panel
gameRoom.add(homeButtonHolder);

//add the welcome label to the gameplay panel
gameRoom.add(welcomeGameRoom);

//add the gameroom panel to the card panel


//Set up of the GamePlay Panel
//**********************************************************************
JPanel gamePlay = new JPanel();
JLabel welcomeGamePlay = new JLabel("Welcome to the Game");

//add the go home holder to the gameplay panel
//*****This is the line that is the issue ***************
gamePlay.add(homeButtonHolder);

//add the welcome label to the gameplay panel
gamePlay.add(welcomeGamePlay);

最佳答案

I added homeButtonPanel to JPanel gameRoom, and then to JPanel gamePlay.

一个组件只能有一个父组件,因此您不能将同一组件添加到多个面板。

因此,您需要创建两个“homeButtonPanel”实例,然后向每个面板添加一个实例。

另一个选择是让主面板使用 BorderLayout。然后,使用 CardLayout 将面板添加到 BorderLayout 的中心。然后,可以将“homeButtonPane”添加到该面板的 PAGE_END,这样即使您交换面板,现在 homeButtonPanel 也会同时属于 CardLayout 中的两个面板。

关于java - 添加到多个其他 JPanel 时 JPanel 消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29996413/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com