我正在尝试实现一个将其状态保存到某个配置文件的 JSplitPane,所以我添加了一个像这样的侦听器:
mHorSplitPane.addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent changeEvent) {
JSplitPane sourceSplitPane = (JSplitPane) changeEvent.getSource();
String propertyName = changeEvent.getPropertyName();
if (propertyName.equals(JSplitPane.DIVIDER_LOCATION_PROPERTY)) {
mController.writeSplitPaneProperty((int) (sourceSplitPane.getDividerLocation()/(float)sourceSplitPane.getBounds().width*100));
}
}
});
它可以很好地处理它,但是由于某种原因,有时 Swing 代码本身会更改此属性并更改分隔符位置,关于如何克服这个问题的任何建议?