Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 21
  1. #11
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    339
    Si per l'aggiunta non c'è bisogno...
    credo che ne sia bisogno per salvare il tutto su un file.


    Ho creato un interfaccia grafica e tra i campi istanza ho inserito un campo Manager Che rappresenta il contenitore su cui aggiungere gli articoli

    codice:
    public class InterfacciaPrincipale extends JFrame {
    
    ....
    ....
    ....
    private Manager contenitore;
    Manager implementa l'interfaccia ManagerContenitore

    codice:
    package PacchettoA;
    import java.util.*;
    
    public interface ManagerContenitore extends Iterable<Articolo>{
    	
    	boolean AggiungiArticolo(Articolo A);
    	boolean RimuoviArticolo(Articolo A);
    	
    
    	}
    codice:
    package PacchettoA;
    
    import java.util.Iterator;
    import java.util.TreeSet;
    
    public class Manager implements ManagerContenitore{
    	
    	private TreeSet<Articolo> Contenitore;
    	
    	public Manager(){
    		Contenitore = new TreeSet<Articolo>();
    	}
    	
    	@Override
    	public boolean AggiungiArticolo(Articolo A){
    		Contenitore.add(A);
    		return true;
    	}
    	
    	@Override
    	public boolean RimuoviArticolo(Articolo A){
    		if(!(Contenitore.contains(A))) return false;
    		Contenitore.remove(A);
    		return true;
    	}
    	public Iterator<Articolo> iterator(){
    		return Contenitore.iterator();
    	}
    }
    dopodichè in una frame dove inserisco i dati dell'articolo , premo un bottone (Che deve aggiungere L'articolo al contenitore.

    ti posto l'ascoltatore

    se non scrivo l'istruzione "contenitore.AggiungiArticolo(ArticoloAggiunto ) non da errore.
    se lo scrivo invece si (Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException)

    codice:
    class ascoltatoreFNA implements ActionListener{
    				
    				private FrameNotificaAggiungi Bsi;
    				
    				public ascoltatoreFNA(FrameNotificaAggiungi Bsi){
    					this.Bsi=Bsi;
    					
    				}
    				
    				
    				public void actionPerformed(ActionEvent e){
    					
    					Articolo ArticoloAggiunto = new Articolo(infoTipo.getText(),infoMarca.getText(), infoModello.getText(), infoCodice.getText(), infoSettore.getText(), Integer.parseInt(infoQuantità.getText()), Double.parseDouble(infoPrezzo.getText()),infoCaratteristiche.getText());
    					String Aggiunta = ("Articolo Aggiunto in magazzino : " + " [ " +ArticoloAggiunto.toString() + " ]" +"\n");
    					EventiMagazzinoRiepilogo.append(Aggiunta);
    					contenitore.AggiungiArticolo(ArticoloAggiunto);
    					Bsi.dispose();
    					
    				}
    				
    			}//ASCOLTATORE FNA

  2. #12
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Markus85
    se non scrivo l'istruzione "contenitore.AggiungiArticolo(ArticoloAggiunto ) non da errore.
    se lo scrivo invece si (Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException)

    codice:
    class ascoltatoreFNA implements ActionListener{
    				
    		contenitore.AggiungiArticolo(ArticoloAggiunto);
    				
    }
    Dove è questa variabile 'contenitore'? La inizializzi?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #13
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    per la classe ascoltatore, chi è contenitore?
    Cioè è da qualche parte istanziato?
    Dove fai

    codice:
    contenitore = new Manager();
    RTFM Read That F*** Manual!!!

  4. #14
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    339
    Aspettate..avete ragione.

    Dovrei inizializzarla nel main? Oltre che metterla come campo istanza di InterfacciaPrincipale?

    codice:
    public static void main(String [] args){
    		
    		new InterfacciaPrincipale();
    		ManagerContenitore contenitore = new Manager();
    		
    	}

  5. #15
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    339
    Però cosi mi da lo stesso errore

  6. #16
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    un conto è dichiarare una variabile, un conto è usarla

    con
    Codice PHP:
    Manager contenitore 
    tu dichiari una variabile di un certo tipo, dici che la tua classe dispone della stessa.
    Prima di utilizzarla devi però istanziarla, altrimenti quella ha il valore di default (null).

    Quindi nella tua interfaccia, oltre a dichiararla devi istanziarla e il costruttore in questo caso è un buon posto per istanziarla
    RTFM Read That F*** Manual!!!

  7. #17
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Markus85
    Però cosi mi da lo stesso errore
    ascoltatoreFNA dovrebbe avere una variabile di istanza contenitore di tipo ManagerContenitore (la interfaccia). E il costruttore di ascoltatoreFNA dovrebbe ricevere questo riferimento e tenerselo.

    Dove istanzi ascoltatoreFNA devi avere a sua volta un riferimento al tuo manager.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  8. #18
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    suppongo che l'ascoltatore sia interna (visto anche che non ha modificatore di visibilità) e che vede la variabile contenitore, quindi basterebbe istanziarla nel costruttore (in questo caso)
    RTFM Read That F*** Manual!!!

  9. #19
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    339
    Ora ho fatto cosi:

    codice:
    private ManagerContenitore contenitore = new Manager();
    Adesso mi da un'altro errore

    Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: PacchettoA.Articolo cannot be cast to java.lang.Comparable

    codice:
    class ascoltatoreFNA implements ActionListener{
    				
    				private FrameNotificaAggiungi Bsi;
    				
    				public ascoltatoreFNA(FrameNotificaAggiungi Bsi){
    					this.Bsi=Bsi;
    					
    				}
    				
    				
    				public void actionPerformed(ActionEvent e){
    					
    					Articolo ArticoloAggiunto = new Articolo(infoTipo.getText(),infoMarca.getText(), infoModello.getText(), infoCodice.getText(), infoSettore.getText(), Integer.parseInt(infoQuantità.getText()), Double.parseDouble(infoPrezzo.getText()),infoCaratteristiche.getText());
    					String Aggiunta = ("Articolo Aggiunto in magazzino : " + " [ " +ArticoloAggiunto.toString() + " ]" +"\n");
    					EventiMagazzinoRiepilogo.append(Aggiunta);
    contenitore.AggiungiArticolo(ArticoloAggiunto);
    					Bsi.dispose();
    					
    				}
    				
    			}//ASCOLTATORE FNA

  10. #20
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    ho capito, però adesso inizia a capire da solo le eccezioni.
    Quella è una classCastException, Articolo deve implementare Comparable
    Dovresti sapere che Articolo deve essere Comparable per poter usare TreeSet come contenitore
    RTFM Read That F*** Manual!!!

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 © 2026 vBulletin Solutions, Inc. All rights reserved.