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
|
/** parametres (String, JComponent) que tu initialises à ta guise ;) */
final JPanel panel = new JPanel("Paramétrage de l'interface");
HashMap<String, JComponent> param = new HashMap<String, JComponent>(10);
/* parametrages */
for(int i = 0; i < param.length; i++) {
param.put(i, new JTextField(""));
// tu obtiens un ouput standard et formaté Label - Component
panel.add(new JLabel("Paramètre:" + param.getKey(i)));
panel.add(param.getValue(i));
panel.validate();
}
JButton save;
/** sauvegarde (par sérialisation des composants)*/
panel.add(save = new JButton("Sauve"));
save.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {
<div style="margin-left:40px">String message = "";
try{
File f = new FileOutputStream("parametres.sav");
ObjectOutputStream oos = new ObjectOutputStream(f);
for(Iterator i = param.getValues().iterator(); i.hasNext();)
oos.writeObject(i.next());
oos.close();
message = "OK";
} catch (IOException e) { message = "ECHEC"} finally {
JOptionPane.showMessageDialog(panel, new JLabel(message)); }</div>}});
/** pour la lecture des parametres c'est l'inverse du passage précédent */
JButton load;
panel.add(load = new JButton("Charge les paramètres"));
load.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {
<div style="margin-left:40px"> String message = "";
try {
<div style="margin-left:40px">FileInputStream f = new FileInputStream("parametres.sav");
ObjectInputStream ois = new ObjectInputStream(f);
int i = 0;
while(param.put(i++, ois.readObject()));
message = "OK";</div>} catch (IOException e) { message = "ECHEC"; e.printStackTrace(); return; }
finally {
<div style="margin-left:40px">panel.removeAll();
for(Iterator i = param.getValues().iterator(); i.hasNext(); )
panel.add(i.next());
panel.validate();</div>}</div>}}); |
Partager