JSplitPane + MiGLayout: how to enable proportional autoresizing
A followup question to my other one;
How do I enable proportional resizing? I thought this would work but it doesn't:
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);
}
}
What I would like is for the ratio of the top/bottom button sizes to be constant when I resize the entire frame. (with a 1:2 ratio by default)
How can I do this?
splitPane.setResizeWeight(0.333);
I can't talk for MigLayout, which I do not know. However, to my mind, the best solution to that issue is swing-generic : you add a ComponentListener
to your JSpiltPane and resize its contained component by a coefficient built from size ratio.
精彩评论