Question

For example, I have a window with a preference button. I want to make it so that when user press the preference button and checks his/her appropriate options and press ok, it saves the preference, then when user presses run on the main window, it runs accordingly to preference the user changed on the preference window.

Thank you in advance.

Was it helpful?

Solution

You can use java.util.prefs package. A simple example:

// Retrieve the user preference node for the package com.mycompany
Preferences prefs = Preferences.userNodeForPackage(com.mycompany.MyClass.class);

// Preference key name
final String PREF_NAME = "name_of_preference";

// Set the value of the preference
String newValue = "a string";
prefs.put(PREF_NAME, newValue);

// Get the value of the preference;
// default value is returned if the preference does not exist
String defaultValue = "default string";
String propertyValue = prefs.get(PREF_NAME, defaultValue); // "a string"

There are many more examples at java2s.com.

OTHER TIPS

There is a Java Preferences API specifically for this purpose. It lets you store per-user preferences in an easy cross-platform way, while the API itself takes care of where and how to store the data.

Besides Preferences, there is another alternative available for rich clients launched using Java Web Start. This alternative is the PersistenceService. Here is a small demo. of the PersistenceService.

It is also a service where the programmer does not need to worry about the details of where the information is stored.

public void saveProperties() {
    try {            
        String USER_NAME = "Some name";
        String DP_ADDRESS = "Some url";
        //create a properties file
        Properties props = new Properties();
        props.setProperty("User name", USER_NAME);
        props.setProperty("Display picture address", DP_ADDRESS);
        File f = new File("YOUR_TARGET_FILE_PATH");
        OutputStream out = new FileOutputStream( f );
        //If you wish to make some comments 
        props.store(out, "User properties");
    }
    catch (Exception e ) {
        e.printStackTrace();
    }
}

You may use java.util.Properties to save your preferences

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top