【发布时间】:2018-02-06 07:16:50
【问题描述】:
我有一个 JSPlitPane,它们之间有 50% 的分隔符。 这工作正常。
但是,当我在右侧添加一些 JLabel 时,jsplitpane 会忽略我的 50% 分隔线,左侧窗格会增加其大小并挤压右侧。
为什么会发生这种情况以及如何解决?
我的代码是:
import javax.swing.*;
import java.awt.*;
public class Example {
private static void setup() {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.setPreferredSize(new Dimension(500, 500));
frame.setFocusable(true);
JSplitPane pane= new JSplitPane();
pane.setResizeWeight(0.5);
pane.setRightComponent(new JPanel());
JPanel myPanel = new JPanel();
myPanel.setLayout(new FlowLayout());
for(int i=0; i<20; i++) myPanel.add(new JLabel("hello"));
pane.setLeftComponent(myPanel);
frame.add(pane);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
setup();
}
});
}
}
【问题讨论】: