4

我的另一个问题的后续问题;

如何启用按比例调整大小?我认为这会起作用,但它不会:

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)

我怎样才能做到这一点?

4

2 回答 2

6
splitPane.setResizeWeight(0.333);
于 2011-01-31T16:11:48.083 回答
2

我不能谈论 MigLayout,我不知道。但是,在我看来,该问题的最佳解决方案是 swing-generic :您将 a 添加ComponentListener到您的 JSpiltPane 并通过根据大小比构建的系数调整其包含的组件的大小。

于 2011-01-31T15:45:44.263 回答