【问题标题】:Get a Fixed sized GridLayout获取固定大小的 GridLayout
【发布时间】:2014-01-25 02:51:47
【问题描述】:
我需要为 GridLayout 制作一个固定大小的 GridLayout,它有 100 个按钮位于 BorderLayout 的中心部分。在边框布局的东部部分是另一个 Gridlayout,只要文本长于位于东部的当前 JTextAreas 的大小,它就会不断缩小中心组件。 JFrame 也无法调整大小。
有没有办法让中心组件保持固定大小,同时允许 JTextArea 仍然扩展?
【问题讨论】:
标签:
java
swing
jframe
size
jbutton
【解决方案1】:
“我需要为一个有 100 个按钮的 GridLayout 设置一个固定大小的边框布局”。
抱歉,这行不通。 BorderLayout 不是那样工作的。您可以使用不同的布局管理器嵌套 JPanel 容器以获得所需的效果。
“只要文本长于位于东部的当前 JTextAreas 的大小,网格布局就会不断缩小中心组件。”
您应该将您的文本区域包裹在JScrollPane 中,并在您的文本区域上使用setLineWrap(true) 和setWrapStyleWord(true)。最后两个将设置它,以便输入的行在到达文本区域的右边缘时换行。此外,如果您将大小设置为文本区域,请不要。相反,使用下面的构造函数来设置它的大小
JTextArea jta = new JTextArea(20, 50); <--- rows, and character columns
jta.setLineWrap(true);
jta.setWrapStyleWord(true);
JScrollPane scroll = new JScrollPane(jta);
container.add(scroll); <--- make sure you don add jta anywhere else
如果您的问题没有更多上下文,这些确实是我能提出的唯一有效建议。