如何让JSplitPane
调整大小false
?我不想调整JSplitPane
的大小,我将其用于此窗格的边框。有没有其他方法可以创建相同的边框结构,将面板垂直分成两部分。
答案 0 :(得分:24)
splitPane.setEnabled( false );
答案 1 :(得分:7)
您可以覆盖JSplitPane方法getDividerLocation()
和getLastDividerLocation
并返回常量值。
JSplitPane split = new JSplitPane(JSplitPane.VERTICAL_SPLIT){
private final int location = 100;
{
setDividerLocation( location );
}
@Override
public int getDividerLocation() {
return location ;
}
@Override
public int getLastDividerLocation() {
return location ;
}
};
答案 2 :(得分:3)
答案 3 :(得分:2)
为防止用户调整窗格大小,您还可以将分隔符大小设置为零。
splitPane.setDividerSize(0);
答案 4 :(得分:1)
final double pos = split.getDividers().get(0).getPosition();
split.getDividers().get(0).positionProperty().addListener(new ChangeListener<Number>() {
@Override
public void changed(ObservableValue<? extends Number> arg0,
Number arg1, Number arg2) {
split.getDividers().get(0).setPosition(pos);
}
});
答案 5 :(得分:0)
如在@camickr答案注释中所述,禁用整个拆分窗格可以禁用包含的组件的交互行为(例如,它们不会在悬停时显示其交互式光标)
相反,如果使用BasicSplitPaneUI,则可以从用户界面禁用分隔线
public class MySplitPane extends JSplitPane {
public void setResizable(boolean resizable) {
BasicSplitPaneUIui = (BasicSplitPaneUI) this.getUI();
ui.getDivider().setEnabled(resizable);
}
}