我试图搜索我的问题的答案,但我甚至不知道该用谷歌搜索什么来找到答案-所以我在这里的stackoverflow。
在我的应用程序中,我使用java1.8和javafx作为gui。我想添加n个复选框到一个阶段,每个复选框上有一个标签。标签的长度可以是任意数量的字符。这些复选框将由用户在我的应用程序运行时添加。我想允许每行有一个以上的复选框。所以基本上我想有一个表格或网格布局,这样所有的复选框都在网格中对齐。它应该填充第一行,一旦所有的水平空间被占用,它应该开始一个新的行。
现在假设第一行有8个复选框,然后第二行开始填充。如果第二行的标签很长,第二行可能只有6个复选框。我不能在第一行有8列,在第二行有6列,但仍然有所有对齐。因此,现在我必须将网格中的列数更改为6(将两个复选框从第一行移到第二行)并重新布局所有内容。
是否有任何布局或控件来处理此问题?仅供参考-我不想允许水平滚动条。
2条答案
按热度按时间62o28rlo1#
我想两者都有
TilePane
以及FlowPane
接近你所描述的;调整大小的行为可能与您要查找的略有不同。nqwrtyyt2#
使用tilepane应该适合你的需要。tilepane的实现保证了每一行(最后一行除外)上的tile数相同。
下面是一个简单的例子,展示了这种行为:
您必须知道,如果复选框包含很长的文本(相对于您的窗口宽度),它可以大大减少tilepane的列数!
另外,最好将tilepane Package 成滚动窗格(只允许垂直滚动条),以避免tilepane宽度变小时无法访问的元素。