Java 限制JSplitPane分隔器的移动

Java 限制JSplitPane分隔器的移动,java,swing,jsplitpane,Java,Swing,Jsplitpane,我正在寻找一种方法来限制分隔器移动超过左手边的某个宽度。例如,我可以使用setDividerLocation(400),然后添加另一个width=500的属性,这样Swing GUI的用户可以移动分隔符,直到只有width=500 我正在查看setLastDividerLocation,但是,这似乎不起作用。有人能帮我设置正确的属性吗 谢谢 您可以在JSplitPane中添加PropertyChangeListener,并在超出限制时重置分隔器位置: splitPane.addPropertyC

我正在寻找一种方法来限制分隔器移动超过左手边的某个宽度。例如,我可以使用setDividerLocation(400),然后添加另一个width=500的属性,这样Swing GUI的用户可以移动分隔符,直到只有width=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 );
        }
    }
});