Вы должны использовать setDividerLocation(double proportionalLocation)
, чтобы определить начальное распределение пространства для JSplitPane
, а затем вызвать setResizeWeight(double)
с тем же значением, чтобы убедиться, что размеры панелей изменяются. в пропорции.
Также имейте в виду: вызов setDividerLocation(double)
до того, как JSplitPane
станет видимым не будет работать правильно , так как вычисление пространства основано на текущем размере Component
. Вместо этого вам нужно задействовать неприятный хак, например, переопределить метод рисования JPanel
, который содержит JSplitPane
:
private boolean painted;
@Override
public void paint(Graphics g) {
super.paint(g);
if (!painted) {
painted = true;
splitPane.setDividerLocation(0.25);
}
}