java - 如何限制在窗体或面板的边框内动态添加组件

标签 java swing size panel border

我正在尝试从数据库动态地将组件添加到 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/

相关文章:

java - 更新 JTable 中突出显示的行

java - 使用使用 WHERE 子句选择的数据加载 JCombobox

java - 从文本字段获取字符串到另一个类空值[Java]

c - 管道缓冲区大小是 4k 还是 64k?

Qt:设置 QMainWindow 的大小

java - Job 类型中的方法 setPartitionerClass(Class<?extendsPartitioner>) 不适用于参数 (Class<WordCountPartitioner>)

java - GWT 使用 CSS 可见性属性设置 Widget 的可见性

java - 缩写还是全称?

java - setSize 不影响按钮的大小

java - 抛出异常会导致未处理异常的错误