TITLE:JScrollBarをJScrollPaneの左と上に配置
#navi(../)
*JScrollBarをJScrollPaneの左と上に配置 [#l79e30ba]
Posted by [[terai]] at 2007-01-08

#contents

**概要 [#o74fb359]
JScrollBarの配置位置を、JScrollPaneの左側、上側に変更します。

-&jnlp;
-&jar;
-&zip;

#screenshot

**サンプルコード [#c9e13a36]
#code{{
scroll.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
JPanel panel = new JPanel(new BorderLayout());
int w = scroll.getVerticalScrollBar().getPreferredSize().width;
panel.add(Box.createHorizontalStrut(w), BorderLayout.WEST);
panel.add(scroll.getHorizontalScrollBar(), BorderLayout.CENTER);
add(panel,  BorderLayout.NORTH);
add(scroll, BorderLayout.CENTER);
}}

**解説 [#y5955037]
- 水平スクロールバーを右から左に
-- パネルのレイアウトを、BorderLayout にして、JScrollPane をそのパネルの中央(BorderLayout.CENTER) に追加し、JScrollPane#setComponentOrientationメソッドで、ComponentOrientation.RIGHT_TO_LEFTを設定しています。

- 垂直スクロールバーを下から上に
-- JScrollPane#getHorizontalScrollBar()メソッドでスクロールバーを取得し、パネルレイアウトを使ってJScrollPaneの上部(BorderLayout.NORTH)に配置されているように見せかけています。
--左上隅の余白は、Box.createHorizontalStrut(縦スクロールバーの幅)です。

**参考リンク [#u3788d1b]
-[[Swing - JScrollPane with scroll bar on the left>http://forums.sun.com/thread.jspa?threadID=600107]]
-[[2000ピクセル以上のフリー写真素材集>http://sozai-free.com/]]

**コメント [#ybd1b696]
#comment