【Java】Swing復習 その(3) スクロールペイン

投稿者: | 2011年5月26日

Swingでは、JScrollPaneを使うことで画面に収まらない領域をスクロールさせて表示することができる。
使い方は簡単で、JScrollPaneのコンストラクタにスクロールさせたいJComponentを渡すだけである。
スクロール対象のJComponentにはあらかじめsetPreferredSize()メソッドでスクロールが開始する大きさを指定しておく。
JScrollPaneが指定した大きさよりも小さくなるとスクロールバーが自動的に表示される。
※もちろん、スクロールバーの表示/非表示は設定できる。

JScrollPaneの使用例

final MyComponent mc = new MyComponent ();
mc.setPreferredSize(new Dimension(400,600));

// スクロールペインを作成する
// 常にスクロールバーを表示する設定
final JScrollPane sp = new JScrollPane(
    myComponent,
    JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
    JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS );

以前に作った、ドラッグで絵を書くプログラムに組み込んでみた。

public class Main {

    public static void main(String[] args) {

        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                final JFrame frame = new JFrame();
                frame.setBounds(100, 100, 400, 300);
                frame.setLocationRelativeTo(null);
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

                // MyCanvasはJComponentを継承したクラスで
                // マウスをドラッグすると軌跡が描かれる。ソースは以前の記事を参照のこと。
                final MyCanvas mc = new MyCanvas();
                mc.setPreferredSize(new Dimension(400,600));

                final JScrollPane sp = new JScrollPane(
                        mc,
                        JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
                        JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS );

                frame.getContentPane().add(sp);
                frame.setVisible(true);
            }
        });
    }
}

このようにスクロールバーが表示されるようになった。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です