我在顶部有一个带JMenuBar的JFrame .
我在我的JFrame中间放了一个JPanel,并将其命名为 Panel1 .
接下来我创建另一个名为 Panel2 扩展JPanel的类,并在其上添加了一些项目 .
现在在我的JFrame上,当用户选择了一个JMenuItem时,我想将 Panel1 分配给我创建的 Panel2 类 . 因此我可以在某种程度上看到我的JFrame中的其他面板!
我怎样才能做到这一点?
在我写的JFrame类中:
JPanel Panel2 = new JPanel();
Panel1 = Panel2;
它没有用,有什么建议吗?
2 回答
JPanel
具有FlowLayout
默认LayoutManager
,在API中实现空
JPanel
返回零PreferredSize
你不能通过
Panel1 = Panel2;
将一个JPanel
添加到另一个JPanel
,然后第二个JPanel
没有添加到第一个 .JPanel
,需要myPanel1.add(myPanel2)
carrefully with reserved Java words and methods names
Panel
isjava.awt.Panel
所有重要信息都在Oracle教程A Visual Guide to Layout Managers,How to Use Panels和JPanel API中
好几件事 .
第一个评论 . 使用初始小写字母更好地命名字段,方法和变量 . 非常广泛的惯例 .
在panel2的GUI编辑器中选择"Custom creation code",然后键入
new Panel2()
.要使用Panel2 panel2动态交换JPanel panel1,覆盖变量将无效; panel1的对象被添加到JFrame的某个swing容器中 .
在菜单项的动作处理中执行:
然而,很少在实践中完成 .