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

By | 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);
			}
		});
    }
}

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


コメントを残す

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