11

JTextAreaをスクロールさせるのに問題があります。JScrollPaneを台無しにする方法がわかりませんが、持っているようで、表示されません。これはすべて大規模なプロジェクトの一部ですが、以下のコードは、JTextAreaを作成してJScrollPaneに追加する方法です。テキスト領域の端を超えて入力すると、スクロールバーは表示されません。垂直スクロールバーを常にオンに設定すると、何もしないスクロールバーが表示されます。

import javax.swing.*;
import java.awt.*;

public class TextAreaTest extends JFrame{

    public TextAreaTest() {
     super("Text Area Scroller");

     Container c = getContentPane();

     JTextArea textarea = new JTextArea();
     textarea.setPreferredSize(new Dimension(300, 50));
     textarea.setLineWrap(true);
     textarea.setText("xx\nxx\nxx\nxx\nxx\nxx\nxx\nxx\nxx\nxx\nxx\nxx\nxx\nxx\n");

     JScrollPane scroller = new JScrollPane(textarea);

     c.add(scroller, BorderLayout.CENTER);
     pack();
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    public static void main(String args[]){
     TextAreaTest instance = new TextAreaTest();
     instance.setVisible(true);
    }
}

コンストラクターでテキスト領域のテキスト、または行と列を設定しようとしましたが、どちらも機能しませんでした。それは私の頭を使っています。何かアイデアはありますか?

4

3 に答える 3

27

テキスト領域ではなく、スクロールペインの適切なサイズを設定します。

于 2010-04-21T22:47:43.190 に答える
1

他はちょうどいいサイズです。余談ですが、イベント ディスパッチ スレッド ( EDT ) から開始することを検討してください。

public static void main(String args[]) {
    EventQueue.invokeLater(new Runnable() {

        @Override
        public void run() {
            new TextAreaTest().setVisible(true);
        }
    });
}
于 2010-04-21T23:03:20.050 に答える