Activation/désactivation d'un Button (AWT)
Bonjour à tous,
j'ai écrit le code ci-après, qui est sensé renvoyer un panel dans lequel on trouve une checkbox, et un button, qui n'est sensé être actif que lorsque la checkbox est cochée. Cela fonctionne : lorsque je "décoche", et que j'essaie de cliquer le bouton, rien ne se passe, comme il se doit. Toutefois, l'apparance visuelle du bouton est fausse. Il apparaît comme inactif lorsqu'il devrait apparaître comme actif, et vice-versa. Qu'est ce qui ne va pas dans ce code ?
Merci d'avance,
Sébastien
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 28
|
public Panel createCalibrationPanel(final ImagePlus imp) {
final Panel panel = new Panel();
panel.setLayout(new BoxLayout(panel, BoxLayout.LINE_AXIS));
panel.add(Box.createHorizontalStrut(20));
final Checkbox checkbox = new Checkbox(
"Use image spatial calibration for q scale", true);
final Button button = new Button("Set scale");
useCalibration = checkbox.getState();
button.setEnabled(checkbox.getState());
panel.add(checkbox);
panel.add(button);
checkbox.addItemListener(new ItemListener() {
public void itemStateChanged(final ItemEvent e) {
boolean state = checkbox.getState();
setUseCalibration(state);
button.setEnabled(state);
}
});
button.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent e) {
imp.unlock();
IJ.run(imp, "Set Scale...", "");
imp.lock();
}
});
return panel;
} |