java - 智能垂直流布局

标签 java user-interface swing layout

我正在 JPanel 布局 (Swing) 中寻找以下行为:基本上它会以垂直方式排列组件,一个组件彼此下方。

当组件无法垂直放置在容器中时,应在新行中添加下一个组件。这将动态地继续,根据需要添加新行。

添加 3 个标签后看起来像这样:

+--------------------------+
|  label1                  |
|  label2                  |
|  label3                  |
+--------------------------+

添加后:另外 2 个标签:

+--------------------------+
|  label1  label4          |
|  label2  label5          |
|  label3                  |
+--------------------------+

最后,再添加 2 个标签后,它看起来像这样:

+--------------------------+
|  label1  label4  label7  |
|  label2  label5          |
|  label3  label6          |
+--------------------------+

是否可以通过当前布局之一实现此行为?

我应该自己创建一个吗?

你会如何解决这个问题?

最佳答案

是的,这是可能的。尝试使用 MigLayout .

这是一个说明用法的代码片段:

JPanel panel = new JPanel(new MigLayout("fill, flowY, wrap 4));
panel.add(new JLabel("row 1, column 1"));
panel.add(new JLabel("row 2, column 1"));
panel.add(new JLabel("row 3, column 1"));
panel.add(new JLabel("row 1, column 2")); // etc.

关于java - 智能垂直流布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3546115/

相关文章:

java - Spring 3.1 的 Jackson 1.9 配置(全局设置日期格式)

c++ - 那里有任何可以便携处理*不*在主线程中的 GUI 库吗?

android - CustomView 扩展 RelativeLayout

java - 将应用程序链接到 Swing GUI 的最佳方式是什么?

java - Java Swing 中的垂直堆叠布局?

java - 打印能被2整除但不能被3整除的数字?

java - 始终位于顶部但允许在下方单击的透明 JFrame

java - Android 如何修剪字符串中的多行?

android - 如何在android中为TextView的文本设置样式或字体?

java - 如何在Swing中输入整数?