我需要为GridLayout制作一个固定大小,其中100个按钮位于BorderLayout的中心部分。在边界布局的东部是另一个Gridlayout,每当文本长于当前位于东部的JTextAreas的大小时,它就会缩小中心组件。 JFrame也不可调整大小。
是否有办法为中心组件获取固定大小,同时允许JTextArea仍然展开?
答案 0 :(得分:2)
“我需要为一个GridLayout制作一个固定大小,其中100个按钮位于BorderLayout的中心部分”。
抱歉,但那不行。 BorderLayout不能那样工作。您可以使用不同的布局管理器嵌套JPanel容器以获得所需的效果。
“只要文本长度超过位于东部的当前JTextAreas的大小,Gridlayout就会不断缩小中心组件。”
您应该将文字区域包裹在文本区域的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
如果没有更多的背景信息,这些确实是我能提出的唯一有效建议。