限制 JSplitPane 分隔线移动

Restrict JSplitPane divider movement

我正在寻找一种方法来限制分隔符在左侧超出一定宽度的移动。例如,我可以使用 setDividerLocation(400) 然后添加另一个宽度 = 500 的 属性,以便 Swing GUI 的用户可以移动分隔线直到宽度 = 500。

我正在查看 setLastDividerLocation,但是,这似乎不起作用。有人可以帮我解决我需要为此设置的正确 属性 吗?

谢谢!

您可以在 JSplitPane 中添加一个 PropertyChangeListener 并在超出限制时重置分隔符位置:

splitPane.addPropertyChangeListener("dividerLocation", new PropertyChangeListener()
{
    @Override
    public void propertyChange(PropertyChangeEvent e)
    {
        int location = ((Integer)e.getNewValue()).intValue();
        System.out.println(location);

        if (location > 400)
        {
            JSplitPane splitPane = (JSplitPane)e.getSource();
            splitPane.setDividerLocation( 400 );
        }
    }
});