加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 具有可扩展单元格的动态布局

发布时间:2020-12-15 02:27:20 所属栏目:Java 来源:网络整理
导读:我真的陷入了我必须用 java swing制作的布局. 我必须构建一个动态表单,同时迭代标签和输入组件的向量. 它应该如何: 在此图像中,您可以看到,应该是什么结果.绿线之间是一对标签/输入组件.我也得到一个约束,告诉我,如果我必须将它们排成一行50/50或两行或一行
我真的陷入了我必须用 java swing制作的布局.

我必须构建一个动态表单,同时迭代标签和输入组件的向量.

它应该如何:

在此图像中,您可以看到,应该是什么结果.绿线之间是一对标签/输入组件.我也得到一个约束,告诉我,如果我必须将它们排成一行50/50或两行或一行25/75或75/25.整个表格也必须调整,50 / 50,25 / 75和75/25比例仍然正确.

我试过GridBagLayout非常好用,但正如你在图片的第一行看到的那样,标签可能很长.所以我使用了一个JTextarea,但是GridBagLayout将它切断了.我也很喜欢JGoodies FormLayout,但也有Textarea长标签的问题.

25/75和75/25的比例并不重要,但实际上它也是我必须做的事情的一部分.

我认为让Textarea扩展其母组件真的很难.

我也阅读/写了这些文章:

> How can I create a JTextArea with a specified width and the smallest possible height required to display all the text?
> How to implement dynamic GUI in swing
> Expand JList row height depending on content

但我仍然被困住了.

你们中有谁对如何做到这一点有任何想法?

谢谢

解决方法

我做了很多Swing已经有一段时间了,但有两点想法:

>如果控制器被切断,听起来好像你没有设置最小尺寸.
>我认为任何现成的布局管理器都不具备维持25/75分割等大小比例的功能.但不要绝望!您可以编写自己的布局管理器.回到我做了很多Swinging时,我写了几个布局管理器. (我会说,“对于特殊要求”,但实际上它们是出于相当普遍的要求,并且我总是惊讶于Java没有包含罐装布局管理器来处理这些事情.喜欢:你经常想要一行或一列按钮所有按钮的大小都相同,所以你必须找到哪个按钮有最长的文本,然后调整所有其他按钮以匹配它.或者:设置行和列,其中每个列的大小适合该列中最宽的内容,但是一列的宽度对其他列没有影响;然后类似于行.)无论如何,您所描述的内容相当不寻常,因此您可能只想编写自己的布局管理器.

编写布局管理器的技巧只是实现一些关键功能:(a)计算X和Y坐标,在给定总体大小的情况下,您将放置每个控件; (b)计算所需的最小尺寸; (c)计算首选大小; (d)计算您将使用的最大尺寸.嗯,可能还有一两件我忘了,但这并不是什么大不了的事.当我第一次想到“编写我自己的布局管理器”时,听起来像“编写自己的数据库引擎”或“编写自己的编译器”,但实际上并不是那么可怕.它通常是几百行代码.

当然,如果这里的其他人可以告诉你如何使用其中一个罐装布局经理做你想做的事情,那肯定会容易得多.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读