0

ここで小さな問題が発生しています...スクロール可能なテキスト領域を作成しようとしていたので、次のコードスニペットを使用して実装しました。これは大丈夫だと確信しています。何が悪いのか教えていただければ幸いです。

JTextArea textArea = new JTextArea();
textArea.setBackground(Color.WHITE);
textArea.setPreferredSize(new Dimension(600, 200));
textArea.setWrapStyleWord(true);
textArea.setLineWrap(true);

JScrollPane scrollPane = new JScrollPane(textArea);
scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
String s = "";

for (int i = 0; i < 100; i++) {
    s += "asdflkjas;ldfkjas;lflsdkjfads;kfja;sdlfafsdf\n";
}

textArea.setText(s);

// method to add Component to a JPanel with GridBagLayout 
addComponent(scrollPane, 3, 0, 2, 2);

問題は単純です-すべてが正常に機能します-テキストは正常に表示され、スクロールバーは正常に表示され、テキストは折り返されます...しかし、スクロールできませんでした!

いくつかのポインタをお願いしますか?

ありがとう!!バッジョ

4

1 に答える 1

4

問題はtextArea、スクロールバーが表示されないように、テキストを表示するために必要な領域よりも小さいサイズに設定していることです。

ここでは、優先サイズを設定せJScrollPane、子コンポーネントのサイズを決定することをお勧めします。期待どおりにスクロールバーが表示されます。

次のコンストラクターを使用できます:JTextArea(int rows、int columns)


補足:パフォーマンスを向上させるために連結をStringBuilder行う場合に使用することをお勧めします。String

于 2012-11-18T13:11:46.523 に答える