Ishima ha scritto:
ma potresti farmi degli esempi direttamente col codice(per quanto riguarda la classe cibo,ecc..)?
Molto abbozzato e a pezzi (perché l'importante è che comprendi il senso e i concetti in generale):
public class Cibo {
private String descrizione;
private double prezzo;
// costruttore/i (es. uno che riceve le due informazioni)
// metodi getter/setter, toString()
}
Il codice è molto abbreviato, credo (e spero vivamente) che ti siano state date le nozioni per creare una classe "bean" corretta con costruttori, metodi getter e/o setter ecc..
Nota che per questo caso specifico, devi definire un toString() che restituisce la descrizione. Questo perché come vedrai tra poco, all'interno del JComboBox inserisco direttamente degli oggetti Cibo. E il renderer predefinito per i combobox fa nient'altro che visualizzare il risultato del toString() degli oggetti presenti nel combobox.
Poi in una ipotetica classe per il frame principale:
public class FramePrincipale extends JFrame {
// .....
private JComboBox<Cibo> antipastiComboBox;
// .....
public FramePrincipale() {
// ...
antipastiComboBox = new JComboBox<Cibo>();
antipastiComboBox.addItem(new Cibo("UOVO BIOLOGICO CROCCANTE “CACIO&PEPE” E CARCIOFI ALLA MENTA", 2.99));
antipastiComboBox.addItem(new Cibo("......", ......));
// ....
}
// ....
}
La descrizione è scritta e inserita solo nel costruttore. Non dovrai usarla per altro (a meno di visualizzarla altrove), né tantomeno per farci degli equals!
Poi in un actionPerformed per il pulsante del Calcola (ora non sto pensando come pensa NetBeans, quindi il metodo pulito per il listener):
public void actionPerformed(ActionEvent e) {
double totale = 0;
Cibo antipastoScelto = (Cibo) antipastiComboBox.getSelectedItem();
totale += antipastoScelto.getPrezzo();
// .....
}
Come vedi è estremamente pulito. Nessun "if". Riottieni un oggetto Cibo che è quello scelto dall'utente.
Ishima ha scritto:
Il nostro professore ci fa usare il drag and drop senza scrivere il codice a mano.