限制 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 );
}
}
});
我正在寻找一种方法来限制分隔符在左侧超出一定宽度的移动。例如,我可以使用 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 );
}
}
});