java - 使添加的 JPanel 在父 JPanel 中可见

标签 java swing jpanel layout-manager cardlayout

如何添加 JPanel在 parent 内部可见JPanel

我正在使用 Netbeans 设计我的 UI。

我有一个 MainFrame.java ,其中包含两个面板;即headerPanelbodyPanel .

headerPanel我放了三个按钮,让它成为button1 , button2button3 .

我还创建了三个单独的文件扩展 JPanel , 命名为 panel1 , panel2panel3 .

然后我将所有三个面板添加到 bodypanel 中在 MainFrame.java在构造函数中。

bodyPanel.add(panel1);
bodyPanel.add(panel2);
bodyPanel.add(panel3);

我希望在单击相应的按钮时,只有相应的面板会出现在 bodypanel 中在大型机中,即如果我单击 button1然后panel1应该显示。

我已经在 button1 中尝试了以下代码鼠标监听方法:

bodyPanel.validate();
bodyPanel.getComponent(0).setVisible(true);

但是panel1没有出现。我这样做是因为面板中添加的组件被分配了索引。所以首先我尝试获取组件然后使其可见。它没有用。

最佳答案

使用 CardLayout ,如图here .

Game view High Scores view

关于java - 使添加的 JPanel 在父 JPanel 中可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11338229/

相关文章:

java - 如何在保持弱一致性的同时迭代 ConcurrentSkipListMap

java - 图像在最小化窗口时丢失

Java数组通过nextInt()输入

java - <? extends A> 不会接受 A 的子类

java - awt双缓冲

java - 在充满绘制形状的 JPanel 上抓取并拖动滚动

java - 调整 JFrame 大小时会调用哪些方法?

java - Java布局中的元素都在同一位置

java - 用户操作时显示的 Swing 卡布局更改面板

Java:处理单独 JPanel 组件内组件上的事件