Bạn nên sử dụng setDividerLocation(double proportionalLocation)
để xác định sự phân bố không gian ban đầu của JSplitPane
, và sau đó gọi setResizeWeight(double)
với cùng một giá trị để đảm bảo rằng các panel này đều được thay đổi kích cỡ tương ứng.
Ngoài ra, lưu ý: Kêu gọi setDividerLocation(double)
trước JSplitPane
có thể nhìn thấy sẽ không hoạt động chính xác, như việc tính toán không gian dựa trên kích thước hiện hành của Component
. Thay vào đó bạn cần phải liên quan đến một hack khó chịu, chẳng hạn như trọng các 's JPanel
phương pháp sơn có chứa JSplitPane
:
private boolean painted;
@Override
public void paint(Graphics g) {
super.paint(g);
if (!painted) {
painted = true;
splitPane.setDividerLocation(0.25);
}
}
setResizeWeight (double) chỉ được sử dụng để "phân phối thêm không gian khi kích thước của những thay đổi split pane". Nó không xác định phân bố không gian ban đầu. – Adamski