TITLE:JScrollBarをJScrollPaneの左と上に配置

Posted by at 2007-01-08

JScrollBarをJScrollPaneの左と上に配置

`JScrollBarの配置位置を、JScrollPane`の左側、上側に変更します。

  • &jnlp;
  • &jar;
  • &zip;
LeftScrollBar.png

サンプルコード

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);
View in GitHub: Java, Kotlin

解説

  • 水平スクロールバーを右から左に
    • パネルのレイアウトを、`BorderLayoutにして、JScrollPaneをそのパネルの中央(BorderLayout.CENTER)に追加し、JScrollPane#setComponentOrientationメソッドで、ComponentOrientation.RIGHT_TO_LEFT`を設定しています。
  • 垂直スクロールバーを下から上に
    • `JScrollPane#getHorizontalScrollBar()メソッドでスクロールバーを取得し、パネルレイアウトを使ってJScrollPaneの上部(BorderLayout.NORTH`)に配置されているように見せかけています。
    • 左上隅の余白は、`Box.createHorizontalStrut`(縦スクロールバーの幅)です。

参考リンク

コメント

  • グッド -- a1