当前位置:  开发笔记 > 编程语言 > 正文

如何在Java中在运行时动态地将Panel添加到其他面板?

如何解决《如何在Java中在运行时动态地将Panel添加到其他面板?》经验,为你挑选了2个好方法。

我想再次进入java(已经有几年了).我从来没有真正在java中进行任何GUI编码.我一直在使用Netbeans来开始这个.

在工作中使用C#中的winforms时,我使用usercontrols来构建UI的一部分并动态地将它们添加到表单中.

我一直在尝试JPanels在C#中使用类似用户控件.我创建了一个JPanel名为的表单BlurbEditor.这有一些简单的控制.我试图在运行时将其添加到另一个面板上的按钮事件.

这是我认为可行的代码:

mainPanel.add(new BlurbEditor());
mainPanel.revalidate();
//I've also tried all possible combinations of these too
//mainPanel.repaint();
//mainPanel.validate();

遗憾的是,这不起作用.我究竟做错了什么?



1> BFreeman..:

我想到了.在这里接受的答案下的评论解释了它: 动态添加JTable不显示

基本上我刚刚在mainPanel.add()之前添加了以下内容

mainPanel.setLayout(new java.awt.BorderLayout());



2> Leigh Caldwe..:

Swing/AWT在向它们添加内容之前,组件通常必须具有布局 - 否则UI将无法知道子组件的放置位置.

BFreeman建议BorderLayout哪个是最容易使用的,并且允许您将事物"粘合"到父母的顶部,底部,左侧,右侧或中心.

还有其他FlowLayout类似的东西textarea- 它在父级的顶部从左到右添加组件,并在到达结尾时包装到新的行.

GridBagLayout这一直是臭名昭著的是无法弄清楚,但不会给你几乎所有你需要的控制.有点像HTML我们过去看到的那些表格,包括rowpan,colspan,width和height属性的奇怪组合 - 这看起来似乎并不像你想要的那样.

推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有