如何将JTextArea设置为固定大小

Avi*_*ohn 1 java swing jtextarea

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

我通过构造函数为JTextArea分配了一个大小:new JTextArea(50,50).

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

我做了:

textArea.setLineWrap(true);

没有解决这个问题.

如何为JTextArea设置固定大小?

agi*_*lob 6

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

JScrollPane jsp = new JScrollPane(textarea);
Run Code Online (Sandbox Code Playgroud)

如果您希望文本区域容纳最大字母数:

textarea.setColumns(100); 
Run Code Online (Sandbox Code Playgroud)


Bap*_*teL 5

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

JTextArea textArea = new JTextArea(50, 50);
JScrollPane scrollPane = new JScrollPane( textArea );
Run Code Online (Sandbox Code Playgroud)

您可能还需要更改布局,因为默认情况下我认为它会使用BorderLayout扩展您的组件.或者PAGE_START像这样把它放进去:

add(new JScrollPane(new JTextArea(50, 50)), BorderLayout.PAGE_START);
Run Code Online (Sandbox Code Playgroud)