我在JPanel中有一个JTextArea。 JPanel设置为默认的FlowLayout。
我通过构造函数new JTextArea(50,50)
分配给JTextArea一个大小。
但是,一旦超出某个范围,不仅会忽略我指定的大小(例如,如果我将大小设置为大于40 * 40的值,程序会开始忽略我说的内容而是设置JTextArea到一些任意大小) - 大小也随着我输入而改变。如果我在里面输入的内容超过它可以包含的数量,那么JTextArea会自行调整大小。
我做了:
textArea.setLineWrap(true);
没有解决这个问题。
如何为JTextArea设置固定大小?
答案 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));