4

現在、チャット プログラムのユーザー入力ウィンドウとして wordwrapped-JTextArea を使用しています。JTextArea が大きなテキストに合わせて自動的にサイズ変更されないようにするにはどうすればよいですか? 私はすでに JTextArea を 2 行に設定しています。

user_input = new JTextArea();
user_input.addAncestorListener(new RequestFocusListener());
user_input.setRows(2);
user_input.setLineWrap(true);
user_input.setWrapStyleWord(true);
4

3 に答える 3

6

JTextAreaに入れる必要がありますJScrollPane。これにより、行サイズがそのまま維持され、ユーザーが入力をナビゲートできるという追加の利点があります。必要に応じて、スクロールペインを表示しないように設定できます。JTextAreaコンポーネントを使用して、行の高さを計算し、次にコンポーネントの適切な高さを計算することができます。

setRowsディスプレイに表示される行の量を示すために使用する への呼び出しは、 JavaDocJScrollPaneで説明されているように、 で動作するように維持されるプロパティです。JTextArea

java.awt.TextArea には、適切なサイズを決定するために使用される行*と列の 2 つのプロパティがあります。JTextArea はこれらのプロパティを使用して、java.awt.TextArea によって提供される機能と一致するように JScrollPane 内に配置されたときにビューポートの推奨サイズを示します。JTextArea には、すべてのテキストを表示するために必要な推奨サイズがあるため、JScrollPane 内で適切に機能します。

*私の強調

于 2010-10-28T17:17:18.633 に答える
4

が設定した寸法を保持するsetPreferredSize(new Dimension(...))ように使用します。JTextArea

于 2010-10-28T17:12:12.030 に答える
2

これは、使用しているレイアウト マネージャーの機能ですが、テキスト エリアにsetPreferredSize()とを設定することで強制することができます。setMaximusSize()

JComponentのドキュメントを参照してください。

于 2010-10-28T17:13:10.320 に答える