JSplitPaneを等分割する
Total: 8975
, Today: 3
, Yesterday: 2
Posted by aterai at
Last-modified:
概要
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
)の余ったスペース配分を同じにすることでディバイダを中央に配置する方法もある