PDA

Visualizza la versione completa : [Java] Codice CheckBox


HaCk88
27-06-2005, 12:26
Ragazzi nella compilazione del seguente codice il compilatore mi restituisce un errore che proprio non riesco a capire dove sbaglio:

import javax.swing.*;
import javax.swing.border.Border;
import java.awt.event.ItemListener;
import java.awt.event.ItemEvent;
import java.awt.event.KeyEvent;
import java.awt.*;
public class CatchAnItemEvent extends BaseFrame implements ItemListener {
JLabel label;
CatchAnItemEvent() {
label = new JLabel("Non modificato");
JPanel panel = new JPanel();
JCheckBox box = new JCheckBox("Selezionami, per favore!");
box.setHorizontalAlignment(SwingConstants.CENTER);
box.addItemListener(this);
panel.add(box);
this.add(panel);
this.pack();
}
public void ItemStateChange(ItemEvent e) {
switch(e.getStateChange()) {
case(ItemEvent.SELECTED):
label.setText("La casella stata selezionata");
break;
case(ItemEvent.DESELECTED):
label.setText("La casella stata deselezionata");
break;
default:
label.setText("Invariata");
}
}
public static void main(String[] args) {
new CatchAnItemEvent();
}
}

L'errore che mi da questo:

http://futurweb.altervista.org/errore_box.JPG

Ma cosa sbaglio??
Sto impazzendo :dh:

Grazie :ciauz:

LeleFT
27-06-2005, 12:30
La tua classe sta implementando ItemListener.
Quindi devi implementare tutti i suoi metodi. Devi, quindi, implementare il metodo itemStateChanged() che ha la seguente firma:


public void itemStateChanged(ItemEvent ie)

Ciao. :ciauz:

HaCk88
27-06-2005, 12:32
Originariamente inviato da LeleFT
La tua classe sta implementando ItemListener.
Quindi devi implementare tutti i suoi metodi. Devi, quindi, implementare il metodo itemStateChanged() che ha la seguente firma:


public void itemStateChanged(ItemEvent ie)

Ciao. :ciauz:

Non ho capito :master:

LeleFT
27-06-2005, 12:37
Nella tua classe hai il metodo ItemStateChanged che ha, erroneamente, la prima I maiuscola... mettila in minuscolo e tutto funzioner. :) Ricordati che, per convenzione, i nomi dei metodi in Java cominciano sempre con una lettera minuscola.


Ciao. :ciauz:

HaCk88
27-06-2005, 12:42
Originariamente inviato da LeleFT
Nella tua classe hai il metodo ItemStateChanged che ha, erroneamente, la prima I maiuscola... mettila in minuscolo e tutto funzioner. :) Ricordati che, per convenzione, i nomi dei metodi in Java cominciano sempre con una lettera minuscola.


Ciao. :ciauz:

Ah, capito!
Ma non mi funziona lo stesso :cry: Mi da sempre lo stesso errore perch?? :cry:

Eppure il codice penso di averlo scritto bene :cry:


import javax.swing.*;
import javax.swing.border.Border;
import java.awt.event.ItemListener;
import java.awt.event.ItemEvent;
import java.awt.event.KeyEvent;
import java.awt.*;
public class CatchAnItemEvent extends BaseFrame implements ItemListener {
JLabel label;
CatchAnItemEvent() {
label = new JLabel("Non modificato");
JPanel panel = new JPanel();
JCheckBox box = new JCheckBox("Selezionami, per favore!");
box.setHorizontalAlignment(SwingConstants.CENTER);
box.addItemListener(this);
panel.add(box);
this.add(panel);
this.pack();
}
public void itemStateChange(ItemEvent e) {
switch(e.getStateChange()) {
case(ItemEvent.SELECTED):
label.setText("La casella stata selezionata");
break;
case(ItemEvent.DESELECTED):
label.setText("La casella stata deselezionata");
break;
default:
label.setText("Invariata");
}
}
public static void main(String[] args) {
new CatchAnItemEvent();
}
}

Cosa sbaglio?? :master:

LeleFT
27-06-2005, 12:48
Che non avevo letto bene... :)

Il metodo si chiama itemStateChanged e non itemStateChange... manca la d in fondo.


Ciao. :ciauz:

HaCk88
27-06-2005, 12:53
Sei un mito!!!!!! Finalmente funziona benissimoooooo :yuppi:
Certo che brutto quando ti da un errore e non riesci a capire da dove proviene.
Ti incomincia a girare la testa :dh: :dh: :dh:
Comunque ho risolto grazie a te.
Grazie Mille!!!! :)

Loading