1

私はまだ Java GUI の作成に不慣れで、JTextArea に問題があります。高さ(列数)を修正したいのですが、常に利用可能なスペースを埋めているようです。JScrollPane 内に配置する必要があることをインターネットで読んだことがありますが、同じことが起こります。

これはいくつかのサンプルコードです:

public class TestWindow extends JFrame {

    public TestWindow() {
        super();
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(300, 200);
        setLocationRelativeTo(null);

        add(new JScrollPane(new JTextArea(5, 10)));

        setVisible(true);
    }

}

このコードでは、JTextArea がウィンドウ全体を埋めます。特定の数の行と列に修正する方法はありますか? レイアウトマネージャーと何か関係があるのでしょうか?

4

3 に答える 3

2

BorderLayout.PAGE_START優先サイズの高さを尊重する場所にコンポーネントを追加できます

add(new JScrollPane(new JTextArea(5, 10)), BorderLayout.PAGE_START);
于 2013-10-02T16:44:21.847 に答える
1

はい、デフォルトのレイアウトはBorderLayoutで、すべてのコンテンツが領域全体に収まるように拡張されます。新しいレイアウトを設定する必要があります。サイズを広範囲に制御するには、GridBagLayoutをお勧めします。または、私が最もよく使用するBoxLayoutです。

于 2013-10-02T16:42:53.593 に答える
0

この場合 (別のレイアウトマネージャーなし)、列数を指定してもコンポーネントの高さは制御されません。setSize() を使用して、手動でサイズを設定する必要があります。

于 2013-10-02T16:46:12.170 に答える