Bonjour tout le monde.
Ca y est, on passe enfin... en Java 5 !
Et du coup, je me retrouve avec des problèmes vieux de 3 ans
Bref, je suis en train de me faire une petite enum, mais j'ai un peu de mal. Le but de la manoeuvre est de créer une liste de boutons dont les libellés sont énumérés dans une enum: Scale.
Je crée mes boutons pour chacune de mes Scale et ensuite je voudrais changer l'échelle utilisée pour mes calculs, en fonction du bouton radio cliqué.
Ce que je n'arrive pas à faire c'est de récupérer l'enum qui correspond au bouton dont l'état vient de changer.
Donc j'utilise la méthode valueOf de ma Scale pour récupérer une Scale en fonction du libellé du bouton... mais ça me renvoie l'exception suivante.
Alors que mon enum est déclarée comme suit :Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: No enum const class treeModel.Scale.Linear
at java.lang.Enum.valueOf(Unknown Source)
at treeModel.Scale.valueOf(Scale.java:1)et mon appel ce fait de la sorte :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 public enum Scale { LINEAR("Linear"), SQUARE_ROOT("Square root"), LOGARITHMIC("Logarithmic"); private String scale; Scale(String pScale) { this.scale = pScale; } /** * @return the String value of this scale */ public String getScale() { return this.scale; } /** * @see java.lang.Enum#toString() * @Override java.lang.Enum#toString() */ public String toString() { return this.scale; } }
Est-ce que quelqu'un pourrait m'aiguiller vers une solution SVP ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 // Add all the scale buttons for (Scale label : Scale.values()) { JRadioButton button = new JRadioButton(label.getScale()); button.setActionCommand(label.getScale()); button.setSelected(label == getDashboardModel().getScale()); button.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { // TODO Check that this works!!! setScale(Scale.valueOf(((JRadioButton) e.getSource()).getText())); repaint(); } }); numericalColorPanel.add(button); group.add(button); }
Par avance, Merci.
Partager