Swing/DividerLocation のバックアップ(No.9)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/DividerLocation へ行く。
- category: swing folder: DividerLocation title: JSplitPaneを等分割する tags: [JSplitPane, Divider] author: aterai pubdate: 2010-06-28T22:43:18+09:00 description: JSplitPaneのディバイダが中央にくるように設定します。 image:
概要
JSplitPane
のディバイダが中央にくるように設定します。
Screenshot
Advertisement
サンプルコード
EventQueue.invokeLater(new Runnable() {
@Override public void run() {
sp.setDividerLocation(0.5);
// sp.setResizeWeight(0.5);
}
});
View in GitHub: Java, Kotlin解説
上記のサンプルのJSplitPane
は、初期状態でそのディバイダが中央に配置されるよう、JSplitPane#setDividerLocation(.5);
を設定しています。
JFrame#pack()
やJFrame#setSize(int, int)
などが実行されて親コンポーネントのサイズが決定した後にJSplitPane#setDividerLocation(...)
メソッドを実行しないと効果がない- ディバイダ自身の幅(
JSplitPane#getDividerSize()
)は含まれない - 内部では、切り捨てで
JSplitPane#setDividerLocation(int)
を使用: JSplitPaneのDividerの位置を最大化後に変更する JSplitPane#setResizeWeight(double)
を使用し、JSplitPane
内に配置したコンポーネント(JScrollPane
)の余ったスペースの配分が同じになるよう設定してディバイダを中央に配置する方法もある