限制JSplitPane分隔器移动

时间:2015-10-14 15:44:25

标签: java swing jsplitpane

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

我看着setLastDividerLocation,然而,这似乎并不起作用。有人可以帮我提供我需要为此设置的正确属性吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

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

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 );
        }
    }
});