2013-10-02 22 views
0

我对创建Java GUI还不熟悉,而且我遇到了JTextArea的问题。我想解决它的高度(列数),但它似乎总是填充可用空间。我在互联网上阅读过,你应该把它放在一个JScrollPane中,我已经完成了,但是同样的事情发生了。修复JTextArea的高度

这是一些示例代码:

public class TestWindow extends JFrame { 

    public TestWindow() { 
     super(); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     setSize(300, 200); 
     setLocationRelativeTo(null); 

     add(new JScrollPane(new JTextArea(5, 10))); 

     setVisible(true); 
    } 

} 

有了这个代码,该JTextArea中塞满了整个窗户。任何方式我可以修复它到特定数量的行和列?它可能与布局管理器有关吗?

+1

难道你不是指“行数”来修复它的高度吗? “列”的数量只影响其宽度。 – splungebob

回答

1

是,默认的布局是BorderLayout它扩展的所有内容,以适应整个区域,必须设置一个新的布局,我推荐的GridBagLayout的尺寸的广泛的控制,或者是我最普遍使用,BoxLayout的

+0

谢谢。我为我的实际程序使用GroupLayout。它与BorderLayout有相同的效果吗?我应该改变为另一种布局吗? –

2

你可以在BorderLayout.PAGE_START位置,尊重首选大小的高度

add(new JScrollPane(new JTextArea(5, 10)), BorderLayout.PAGE_START); 
+0

不包装(:-) ......................... – mKorbel

+0

@mKorbel是的,你显然需要在中心位置的东西 - 假设这是一个未完成的UI – Reimeus

0

在这种情况下(没有其他布局管理器)添加该组件,告诉列的数量将无法控制组件的高度。您需要使用setSize()手动设置它的大小。

+0

*“告诉列的数量不会控制组件的高度”*如果添加了“PAGE_START”或“PAGE_END”约束,它将会被添加。 –