Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [Java] Codice CheckBox

  1. #1
    Utente di HTML.it L'avatar di HaCk88
    Registrato dal
    May 2005
    Messaggi
    193

    [Java] Codice CheckBox

    Ragazzi nella compilazione del seguente codice il compilatore mi restituisce un errore che proprio non riesco a capire dove sbaglio:
    codice:
    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:



    Ma cosa sbaglio??
    Sto impazzendo

    Grazie

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    La tua classe sta implementando ItemListener.
    Quindi devi implementare tutti i suoi metodi. Devi, quindi, implementare il metodo itemStateChanged() che ha la seguente firma:
    codice:
    public void itemStateChanged(ItemEvent ie)
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it L'avatar di HaCk88
    Registrato dal
    May 2005
    Messaggi
    193
    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:
    codice:
    public void itemStateChanged(ItemEvent ie)
    Ciao.
    Non ho capito :master:

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    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.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it L'avatar di HaCk88
    Registrato dal
    May 2005
    Messaggi
    193
    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.
    Ah, capito!
    Ma non mi funziona lo stesso Mi da sempre lo stesso errore perchè??

    Eppure il codice penso di averlo scritto bene

    codice:
    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:

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Che non avevo letto bene...

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


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Utente di HTML.it L'avatar di HaCk88
    Registrato dal
    May 2005
    Messaggi
    193
    Sei un mito!!!!!! Finalmente funziona benissimoooooo
    Certo che è brutto quando ti da un errore e non riesci a capire da dove proviene.
    Ti incomincia a girare la testa
    Comunque ho risolto grazie a te.
    Grazie Mille!!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.