后续问题to my other one;
如何启用比例调整大小?我认为这样可行,但事实并非如此:
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JSplitPane;
import net.miginfocom.swing.MigLayout;
public class SplitPaneQuestion {
public static void main(String[] args) {
JFrame frame = new JFrame("SplitPaneQuestion");
JPanel panel = new JPanel();
frame.setContentPane(panel);
panel.setLayout(new MigLayout("","[]","[grow]"));
JSplitPane splitpane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
panel.add(splitpane, "push, grow");
splitpane.setTopComponent(new JButton("top"));
splitpane.setBottomComponent(new JButton("bottom"));
splitpane.setDividerLocation(0.333);
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
我想要的是当我调整整个帧的大小时,顶部/底部按钮大小的比率是恒定的。 (默认情况下比例为1:2)
我该怎么做?
答案 0 :(得分:6)
splitPane.setResizeWeight(0.333);
答案 1 :(得分:2)
我不能谈论MigLayout,我不知道。但是,在我看来,这个问题的最佳解决方案是swing-generic:你向JSpiltPane添加ComponentListener
并通过按大小比率构建的系数调整其包含的组件的大小。