PrefTest.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.prefs.*; // for Preferences
/**
Demonstration of Preferences API.
*/
class PrefTest extends JFrame
{
public static void main(String argv[])
{
PrefTest f = new PrefTest();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.show();
}
public PrefTest()
{
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension ss = kit.getScreenSize();
setSize(ss.width/3,ss.height/6);
setLocation(ss.width/4,ss.height/4);
setTitle("CISC370-011 -- Preferences demo");
ButtonPanel sp = new ButtonPanel();
Container contentPane = getContentPane();
contentPane.add(sp);
}
}
/**
A panel that remembers its last background color.
*/
class ButtonPanel extends JPanel
{
public ButtonPanel() {
// Retrieve the Preference node from the user tree.
Preferences uroot = Preferences.userRoot();
mynode = uroot.node("/com/bozoid/cis370/demo07/PrefTest");
// Retrieve the background color (stored as an integer).
Color curcolor = new Color(mynode.getInt("Color",0));
setBackground(curcolor);
mkButton("Red",Color.RED,mynode);
mkButton("Yellow",Color.YELLOW,mynode);
mkButton("Green",Color.GREEN,mynode);
}
void mkButton(String name,final Color bg,final Preferences node) {
JButton jb = new JButton(name);
add(jb);
jb.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
// Every time, set the background color...
setBackground(bg);
// ...and save the new color (as an integer).
node.putInt("Color",bg.getRGB());
}
});
}
Preferences mynode = null;
}