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

JScrollBarをJScrollPaneの左と上に配置

編集者:Terai Atsuhiro~

作成日:2007-01-08
更新日:2021-10-13 (水) 02:44:07
  • category: swing folder: LeftScrollBar title: JScrollBarをJScrollPaneの左と上に配置 tags: [JScrollBar, JScrollPane, BorderLayout] author: aterai pubdate: 2007-01-08T14:26:45+09:00 description: JScrollBarの配置位置を、JScrollPaneの左側、上側に変更します。 image: https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTPG13yZbI/AAAAAAAAAdc/1a4aTgyblRo/s800/LeftScrollBar.png

概要

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

概要

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;

コメント