我的Plist代码有问题吗?当我第一次运行程序时,它会询问文件位置,因为没有plist。
下次我运行程序并移动表单然后退出程序时,它会在~library / Preferences / com.apple.java.util.prefs.plist中写一个新的plist,这正是我所期望的。
当我删除上面的plist并重新启动程序时,我希望它想要作为新的文件名,而是从其他地方选择plist并使用旧信息。
这是获取plist的代码
// get preferences from plist
Preferences prefsRoot = Preferences.userRoot();
Preferences myPrefs = prefsRoot.node("WizardPreferences");
strFileName = myPrefs.get("Path", "");
int intPos1X = myPrefs.getInt("posScene1X", 300);
int intPos1Y = myPrefs.getInt("posScene1Y", 300);
intPosX = intPos1X;
intPosY = intPos1Y;
// check file if "" then get file name
if (strFileName.equals("")) {
// get file name
filechooser();
}
这是我退出程序时编写plist的代码
// Exit Button
public void exit() {
// define action for exit button
// save information for next run
Preferences prefsRoot = Preferences.userRoot();
Preferences myPrefs = prefsRoot.node("WizardPreferences");
myPrefs.put("Path", strFileName);
myPrefs.putInt("posScene1X", intPosX);
myPrefs.putInt("posScene1Y", intPosY);
// exit and close program
System.exit(0);
}
我确信我没有很好地解释我的问题,因为我是Java编程的新手。
任何帮助都将不胜感激。
罗杰
答案 0 :(得分:0)
这个问题最近困扰我。这不是您的代码的问题-就像您说的那样记住。
Mac会缓存首选项,因此当您删除plist文件时,缓存仍会提供信息。您可以:
killall -u cfprefsd
OR
项目2和3.将导致清除缓存,然后在cfprefsd自动重启时重新加载您的首选项。
我希望有帮助。