检测JSplitPane分割器移动

Adu*_*e11 13 java swing jsplitpane

有没有办法检测何时移动JSplitPane分隔线?有没有办法为分频器移动添加一个监听器?

JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
JSplitPane sp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, panel1, panel2);
// What do I put here to be notified if the divider in sp is moved?
Run Code Online (Sandbox Code Playgroud)

Ant*_*ace 24

我认为你正在寻找addPropertyChangeListenerContainer.像这样......

sp.addPropertyChangeListener(JSplitPane.DIVIDER_LOCATION_PROPERTY, 
    new PropertyChangeListener() {
        @Override
        public void propertyChange(PropertyChangeEvent pce) {}
});
Run Code Online (Sandbox Code Playgroud)


Ser*_*kyy 5

使用

splitter.addPropertyChangeListener("dividerLocation", myListener);
Run Code Online (Sandbox Code Playgroud)

  • 更好地使用`DIVIDER_LOCATION_PROPERTY`常量而不是String本身 (4认同)