1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| package com.developpez.exemples;
import java.util.prefs.Preferences;
import javax.swing.JOptionPane;
import javax.swing.JSpinner;
import javax.swing.JTextField;
import javax.swing.SpinnerNumberModel;
public class TEST {
private static final String IP_KEY = "IP";
private static final String PORT_KEY = "port";
private static final String IP_DEFAULT_VALUE = "127.0.0.1";
private static final int PORT_DEFAULT_VALUE = 12345;
public static void main(String[] args) throws Exception {
// On récupère les préférences de l'utilisateur
// pour le package de notre classe (afin d'éviter des conflits
// avec d'autres applications Java)
Preferences prefs = Preferences.userNodeForPackage(TEST.class);
// On récupère les valeurs enregistrées
// ou la valeur par défaut (second paramètre)
// si la valeur n'est pas définie
String ip = prefs.get(IP_KEY, IP_DEFAULT_VALUE);
int port = prefs.getInt(PORT_KEY, PORT_DEFAULT_VALUE);
// On défini les composants graphiques :
JTextField ipField = new JTextField(ip);
SpinnerNumberModel portModel = new SpinnerNumberModel(port, 0, 99999, 1);
JSpinner portSpinner = new JSpinner(portModel);
Object[] message = {
"IP:", ipField, "Port:", portSpinner
};
// On affiche l'interface graphique :
JOptionPane.showMessageDialog(null, message);
// Avant de quitter le programme,
// on sauvegarde les valeurs
// (si elles ont été modifiée)
String newIP = ipField.getText().trim();
if (newIP.equals(ip)==false) {
prefs.put(IP_KEY, newIP);
}
int newPort = portModel.getNumber().intValue();
if (newPort!=port) {
prefs.putInt(PORT_KEY, newPort);
}
// On s'assure que tout soit bien sauvegardé
prefs.flush();
}
} |