String path = workspaceField.getText();
//prefs.remove("workspaceDirectory");
prefs.put("workspaceDirectory", path);
splitPane = commands.getSplitPane();
WebScrollPane oldTree = (WebScrollPane) splitPane.getLeftComponent();
splitPane.remove(oldTree);
WebScrollPane newTree = commands.createFileTree();
splitPane.setLeftComponent(newTree);
dialog.dispose();
上面的代码从文本字段中获取文件路径,然后将其放入名为“workspaceDirectory”的字符串首选项中。问题是这种偏好不会改变。注释的 prefs.remove 调用成功删除了首选项,但在调用 prefs.put("workspaceDirectory", path) 时它不会更改首选项。我没有收到任何错误。
方法 createFileTree():
public WebScrollPane createFileTree() {
fileTree = new WebFileTree(prefs.get("workspaceDirectory", WorkspaceManager.createWorkspaceDirectory()));
fileTreeScrollPane = new WebScrollPane(fileTree);
fileTreeScrollPane.setVerticalScrollBarPolicy(WebScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
fileTree.addMouseListener(new FileTreeListener(this));
return fileTreeScrollPane;
}
这就是 createFileTree 所做的一切,但它不会影响任何东西。如果我将更改组件的代码注释掉,那么 prefs.put 什么也不做。任何想法是什么导致了这种情况或阻止了偏好的改变?