Swing/LeftScrollBar のバックアップの現在との差分(No.1)
TITLE:JScrollBarをJScrollPaneの左と上に配置
JScrollBarをJScrollPaneの左と上に配置
編集者:Terai Atsuhiro~
作成日:2007-01-08
更新日:2021-10-13 (水) 02:44:07
概要
JScrollBar
の配置位置を、JScrollPane
の左側、上側に変更します。
Screenshot
Advertisement
概要
JScrollBarの配置位置を、JScrollPaneの左側、上側に変更します。サンプルコード
#spanend
#spanadd
scroll.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
#spanend
#spanadd
JPanel panel = new JPanel(new BorderLayout());
#spanend
#spanadd
int w = scroll.getVerticalScrollBar().getPreferredSize().width;
#spanend
#spanadd
panel.add(Box.createHorizontalStrut(w), BorderLayout.WEST);
#spanend
#spanadd
panel.add(scroll.getHorizontalScrollBar(), BorderLayout.CENTER);
#spanend
#spanadd
add(panel, BorderLayout.NORTH);
#spanend
#spanadd
add(scroll, BorderLayout.CENTER);
#spanend
#spanadd
View in GitHub: Java, Kotlin#screenshot
解説
- 水平スクロールバーを右から左に移動
- パネルのレイアウトに
BorderLayout
を設定してJScrollPane
をそのパネルの中央(BorderLayout.CENTER
)に追加 -
JScrollPane#setComponentOrientation(...)
メソッドでComponentOrientation.RIGHT_TO_LEFT
を設定
- パネルのレイアウトに
- 垂直スクロールバーを下から上に移動
-
JScrollPane#getHorizontalScrollBar()
メソッドでスクロールバーを取得し、パネルレイアウトを使ってJScrollPane
の上部(BorderLayout.NORTH
)に配置されているように表示 - 左上隅の余白は
Box.createHorizontalStrut(縦スクロールバーの幅)
で埋める
-
サンプルコード
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);
参考リンク
- &jnlp;
- &jar;
- &zip;
コメント
- グッド -- a1
- どうもです。 -- aterai
解説
- 水平スクロールバーを右から左に
- JScrollPane#setComponentOrientationメソッドで、ComponentOrientation.RIGHT_TO_LEFTを使用しています。
- 垂直スクロールバーを下から上に
- JScrollPane#getHorizontalScrollBar()メソッドでスクロールバーを取得し、パネルレイアウトを使ってJScrollPaneの上部に配置されているように見せかけています。