我正在尝试从数据库动态地将组件添加到 jpanel,一个接一个,但是它们水平超出了表单(甚至屏幕)的限制。我正在使用带有 BoxLayout 的面板,它将内部组件定位在 x 轴上。我想做的是限制在表单边框(或容器面板边框)的 x 轴上添加组件。 到目前为止我尝试过的是:
- 设置最大尺寸(宽度) 容器 jpanel 但没有 工作。
- 将布局管理器设置为 flowlayout,但它也扩展了 在 x 轴上无限。
- 将容器面板放置在 滚动 Pane 。这使得一个巨大的 水平滚动条,这意味着 它不限制组件 表单的边框。
我应该制作自定义布局吗?还有比这更简单的想法吗? 我的代码如下所示:
jpanelCases.setLayout(new BoxLayout(this.jpanelCases, BoxLayout.X_AXIS));
db = Database.getInstance();
List<Category> cats = db.getCategories();
for(Category c : cats){
JPanel jp = new JPanel();
//addition of other components to the newly created panel here
jpanelCases.add(jp);
}
最佳答案
however they extend beyond the limits of the form (and even the screen) horizontally.
那么在这种情况下你想做什么:
a) 只是忽略组件而不将它们添加到框架中 b) 在新行上显示组件
如果答案是“b”,请尝试 WrapLayout .
关于java - 如何限制在窗体或面板的边框内动态添加组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6474140/