Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [JAVA] rimozione elementi da un array

    salve a tutti , questo e' il mio primo 3d su questo forum , ho cominciato da un paio di giorni ad aggiungere ad i miei programmini l' interfaccia grafica utilizzando awt , nello specifico questo programma deve gestire l' elenco di auto presenti in un concessionario : inserimento , rimozione , vedere la quantita' di auto nuove e usate ed il totale , tutta roba abbastanza semplice

    il problema arriva quando devo eliminare un' auto dall' elenco , io assegno ad un bottone (dove prima si inserisce il numero di matricola) la funzione per rimuovere questa benedetta auto (geany compila , tutto ok ) ma quando vado a rimuoverne una ecco che .... puff un chilometro di exception

    codice:
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at Concessionario.rimuovi(Concessionario.java:23)
        at Extra.actionPerformed(Extra.java:57)
        at java.awt.Button.processActionEvent(Button.java:409)
        at java.awt.Button.processEvent(Button.java:377)
        at java.awt.Component.dispatchEventImpl(Component.java:4861)
        at java.awt.Component.dispatchEvent(Component.java:4687)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
        at java.awt.EventQueue.access$200(EventQueue.java:103)
        at java.awt.EventQueue$3.run(EventQueue.java:694)
        at java.awt.EventQueue$3.run(EventQueue.java:692)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
        at java.awt.EventQueue$4.run(EventQueue.java:708)
        at java.awt.EventQueue$4.run(EventQueue.java:706)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
    vi allego pure il codice della funzione per la rimozione ...
    codice:
        public boolean rimuovi(String mat) {
            boolean ok=false;
            for(int i=0;i<v.length;i++){
                if(mat==v[i].getMatricola()){
                    v[i]=null;
                    ok=true;
                    for(int p=i;p<v.length;p++){
                        v[p]=v[p+1];
                        v[p+1]=null;
                    }
                }
            }
            return ok;
        }
    grazie per le future risposte , aspetto con ansia

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da alexanderi96 Visualizza il messaggio
    ho cominciato da un paio di giorni ad aggiungere ad i miei programmini l' interfaccia grafica utilizzando awt
    Se hai usato componenti AWT, il primo consiglio innanzitutto è di passare ai componenti Swing.

    Quote Originariamente inviata da alexanderi96 Visualizza il messaggio
    codice:
                if(mat==v[i].getMatricola())
    Come seconda cosa, il contenuto delle stringhe (degli oggetti, in generale) si confronta con il metodo equals() .... non con == .
    Comunque il punto è che i null ci possono essere nell'array, quindi perlomeno dovresti testare v[i] prima di fare v[i].qualcosa.
    E comunque non è che quadra tantissimo, ad esempio è dubbio quel v[p+1]=null;
    Se vuoi far scalare di uno indietro tutti gli elementi successivi, si può fare .... ma in modo più sensato.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Nabbezza portami via , comunque grazie per la risposta , per quanto riguarda la scalata si , ragiono sempre in modo incasinato

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