[enum] method valueOf non reconnue
Bonjour tout le monde.
Ca y est, on passe enfin... en Java 5 ! :aie:
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.
Citation:
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)
Alors que mon enum est déclarée comme suit :
Code:
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;
}
} |
et mon appel ce fait de la sorte :
Code:
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);
} |
Est-ce que quelqu'un pourrait m'aiguiller vers une solution SVP ?
Par avance, Merci.
Pourquoi faire simple quand on peut faire compliqué...
Salut et Merci,
Je venais de me rendre compte de mon erreur attribut/valeur... mais j'étais en train de chercher une solution à milles lieux de celle que tu m'as donné.
Merci bien !