Swing/DividerLocation のバックアップの現在との差分(No.6)
- 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);
// sp.setResizeWeight(0.5);
}
});
View in GitHub: Java, Kotlin解説
上記のサンプルでは、JSplitPane
のサイズが決まった後(例えばJFrame#pack()
や、JFrame#setSize(int,int)
などした後)で、JSplitPane#setDividerLocation(0.5);
を使用することで、ディバイダを中央に配置しています。
上記のサンプルのJSplitPane
は、初期状態でそのディバイダが中央に配置されるよう、JSplitPane#setDividerLocation(.5);
を設定しています。
-
JSplitPane#setDividerLocation(double)
- ディバイダ自身の幅(
JSplitPane#getDividerSize()
)は含まれない - 内部では、切り捨てで
JSplitPane#setDividerLocation(int)
を使用: JSplitPaneのDividerの位置を最大化後に変更する
- ディバイダ自身の幅(
-
JFrame#pack()
やJFrame#setSize(int, int)
などが実行されて親コンポーネントのサイズが決定した後にJSplitPane#setDividerLocation(...)
メソッドを実行しないと効果がない - ディバイダ自身の幅(
JSplitPane#getDividerSize()
)は含まれない - 内部では切り捨てで
JSplitPane#setDividerLocation(int)
を使用: JSplitPaneのDividerの位置を最大化後に変更する -
JSplitPane#setResizeWeight(double)
を使用してJSplitPane
内に配置したコンポーネント(JScrollPane
)の余ったスペース配分を同じにすることでディバイダを中央に配置する方法もある
- -
JSplitPane#setResizeWeight(double)
を使用し、JSplitPane
内に配置したコンポーネント(JScrollPane
)の余ったスペースの配分が同じになるようにして、ディバイダを中央に配置する方法もあります。