如何将JTextArea设置为固定大小

时间:2014-04-07 14:05:32

标签: java swing jtextarea

我在JPanel中有一个JTextArea。 JPanel设置为默认的FlowLayout。

我通过构造函数new JTextArea(50,50)分配给JTextArea一个大小。

但是,一旦超出某个范围,不仅会忽略我指定的大小(例如,如果我将大小设置为大于40 * 40的值,程序会开始忽略我说的内容而是设置JTextArea到一些任意大小) - 大小也随着我输入而改变。如果我在里面输入的内容超过它可以包含的数量,那么JTextArea会自行调整大小。

我做了:

textArea.setLineWrap(true);

没有解决这个问题。

如何为JTextArea设置固定大小?

3 个答案:

答案 0 :(得分:5)

如果将其包含在可能解决问题的JScrollPane中:

JTextArea textArea = new JTextArea(50, 50);
JScrollPane scrollPane = new JScrollPane( textArea );

您可能还需要更改布局,因为默认情况下我认为它使用扩展组件的BorderLayout。或者将它放在PAGE_START中,如下所示:

add(new JScrollPane(new JTextArea(50, 50)), BorderLayout.PAGE_START);

答案 1 :(得分:4)

如果你想要固定大小,你必须把它放在像JScrollPane这样的盒子里:

JScrollPane jsp = new JScrollPane(textarea);

如果您希望文本区域符合最大字母数:

textarea.setColumns(100); 

答案 2 :(得分:0)

尝试使用 textArea.setPreferredSize(new Dimension(WIDTH, HEIGHT));