Java的Swing用鼠标改变了布局的大小

时间:2015-08-25 22:47:35

标签: java swing jframe layout-manager

我有一个带有BoxLayout的JFrame,分为2列。理想情况下我希望如此,当鼠标悬停在分界线上时,我可以单击并拖动该行以动态更改布局的大小。是否有工具或更好的方法来做到这一点?

2 个答案:

答案 0 :(得分:2)

使用JSplitPane作为contentPane的{​​{1}}是更好的方法。

答案 1 :(得分:1)

如上所述,使用JSplitPane。见下面的例子

public class SplitPaneDemo extends JFrame {
    public static void main(String[] args) {
        EventQueue.invokeLater(() -> new SplitPaneDemo());
    }

    SplitPaneDemo() {
        super("SplitPaneDemo");

        JLabel lhs = new JLabel("LHS");
        lhs.setPreferredSize(new Dimension(320, 200));

        JLabel rhs = new JLabel("RHS");
        rhs.setPreferredSize(new Dimension(320, 200));

        JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
        splitPane.setContinuousLayout(true); // Update window as splitter is moved
        splitPane.setLeftComponent(lhs);
        splitPane.setRightComponent(rhs);

        setContentPane(splitPane);
        pack();
        setVisible(true);
    }
}