Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1

    Confronto tra stringe..

    Salve a tutti ragazzi! Sono nuovo della community e spero vivamente di trovarmi bene! Vengo subito al dunque..Da poco ho iniziato la programmazione a oggetti guidata da eventi nell'IDE Netbeans. Ora ho un problema, un confronto tra stringhe...ho usato entrambi i metodi per confrontare le stringe(equals, compareTo) ma il problema rimane sempre lo stesso sfortunatamente...Questo è il codice:
    codice:
    String s;
            s=jTextField6.getText();
            boolean b;
            b=false;
            c=-1;
            while((c<libri.lunghezza())&&(!b))
            {
                c++;
                if(s.compareTo(libri.getLibro(c).getTitolo())==0) b=true;
                 
            }
            if(b) jTextField7.setText(String.valueOf(libri.getLibro(c).vis_prezzo()));
            else jLabel12.setVisible(true);
            
            
        }
    l'errore me lo da sull'IF all'interno del ciclo while, in pratica se la condizione è VERA non mi da alcun problema e va tutto liscio, se la condizione invece è falsa mi da errore e non mi esegue
    codice:
    else jLabel12.setVisible(true);
    questa istruzione...
    ho provato anche con
    codice:
    if(s.equals(libri.getLibro(c).getTitolo())) b=true;
    ma il problema rimane lo stesso, ovvero non esegue l'else ...l'errore è questo qui
    codice:
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at lavoro3_biblioteca.Biblioteca.jButton3MouseClicked(Biblioteca.java:306)
    	at lavoro3_biblioteca.Biblioteca.access$200(Biblioteca.java:11)
    	at lavoro3_biblioteca.Biblioteca$3.mouseClicked(Biblioteca.java:109)
    	at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:253)
    	at java.awt.Component.processMouseEvent(Component.java:6376)
    	at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
    	at java.awt.Component.processEvent(Component.java:6138)
    	at java.awt.Container.processEvent(Container.java:2085)
    	at java.awt.Component.dispatchEventImpl(Component.java:4735)
    	at java.awt.Container.dispatchEventImpl(Container.java:2143)
    	at java.awt.Component.dispatchEvent(Component.java:4565)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4621)
    	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4291)
    	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4212)
    	at java.awt.Container.dispatchEventImpl(Container.java:2129)
    	at java.awt.Window.dispatchEventImpl(Window.java:2478)
    	at java.awt.Component.dispatchEvent(Component.java:4565)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:679)
    	at java.awt.EventQueue.access$000(EventQueue.java:85)
    	at java.awt.EventQueue$1.run(EventQueue.java:638)
    	at java.awt.EventQueue$1.run(EventQueue.java:636)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
    	at java.awt.EventQueue$2.run(EventQueue.java:652)
    	at java.awt.EventQueue$2.run(EventQueue.java:650)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:649)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
    se gentilmente potete aiutarmi ve ne sarei eternamente grato! grazie in anticipo a tutti ! spero in tante risposte! Carmine.

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Verifica che s contenga effettivamente del testo.
    Dovresti dirmi qual è la riga che ti ha restituito l'errore...

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    324

    Re: Confronto tra stringe..

    codice:
    if(s.equals(libri.getLibro(c).getTitolo())) b=true;
    ma il problema rimane lo stesso, ovvero non esegue l'else ...l'errore è questo qui
    codice:
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at lavoro3_biblioteca.Biblioteca.jButton3MouseClicked(Biblioteca.java:306)
    	at lavoro3_biblioteca.Biblioteca.access$200(Biblioteca.java:11)
    	at lavoro3_biblioteca.Biblioteca$3.mouseClicked(Biblioteca.java:109)
    	at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:253)
    	at java.awt.Component.processMouseEvent(Component.java:6376)
    	at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
    	at java.awt.Component.processEvent(Component.java:6138)
    	at java.awt.Container.processEvent(Container.java:2085)
    	at java.awt.Component.dispatchEventImpl(Component.java:4735)
    	at java.awt.Container.dispatchEventImpl(Container.java:2143)
    	at java.awt.Component.dispatchEvent(Component.java:4565)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4621)
    	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4291)
    	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4212)
    	at java.awt.Container.dispatchEventImpl(Container.java:2129)
    	at java.awt.Window.dispatchEventImpl(Window.java:2478)
    	at java.awt.Component.dispatchEvent(Component.java:4565)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:679)
    	at java.awt.EventQueue.access$000(EventQueue.java:85)
    	at java.awt.EventQueue$1.run(EventQueue.java:638)
    	at java.awt.EventQueue$1.run(EventQueue.java:636)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
    	at java.awt.EventQueue$2.run(EventQueue.java:652)
    	at java.awt.EventQueue$2.run(EventQueue.java:650)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:649)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

    Ciao,

    vedendo cosi a occhio il codice credo che ti dia quell'errore tipo di errore perchè l'oggetto JLabel non istanziato.

    Spero di esserti stato d'aiuto.

  4. #4
    Originariamente inviato da Patrick Jane
    Verifica che s contenga effettivamente del testo.
    Dovresti dirmi qual è la riga che ti ha restituito l'errore...
    codice:
    if(s.equals(libri.getLibro(c).getTitolo())) b=true;
    questa mi restituisce errore quando la condizione diventa falsa, cioè quando in "s" metto un titolo che non si trova nel vettore di oggetti, se invece in "s" metto il titolo di un libro che si trova nel vettore di oggetti il programma gira correttamente, ,quindi l'eccezione me la da sull' if quando s è diverso dai titoli che che sono presenti nel vettore di oggetti

    Originariamente inviato da manublack



    Ciao,

    vedendo cosi a occhio il codice credo che ti dia quell'errore tipo di errore perchè l'oggetto JLabel non istanziato.

    Spero di esserti stato d'aiuto.
    ciao manu, comunque l'oggetto Jlabel è istanziato

  5. #5
    Originariamente inviato da kage994
    codice:
    if(s.equals(libri.getLibro(c).getTitolo())) b=true;
    questa mi restituisce errore quando la condizione diventa falsa, cioè quando in "s" metto un titolo che non si trova nel vettore di oggetti, se invece in "s" metto il titolo di un libro che si trova nel vettore di oggetti il programma gira correttamente, ,quindi l'eccezione me la da sull' if quando s è diverso dai titoli che che sono presenti nel vettore di oggetti


    ciao manu, comunque l'oggetto Jlabel è istanziato
    Ciao, ascolta io ho provato il tuo codice e mi funziona senza problemi, saresti così gentile da postare l'intera classe? Perchè sorge veramente il dubbio che ci sia qualcosa di non istanziato. Grazie, ciao
    L'ascensore può scendere su e giù...
    by Prof di Sistemi

  6. #6
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: Confronto tra stringe..

    Originariamente inviato da kage994
    ...
    Sembra che tu non abbia istanziato una classe...
    Hai provato a debuggare? Metti un breakpoint prima dell'if che ti da problemi e step by step controlla cosa succede
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    credo che quando hai istruzioni di questo tipo
    codice:
    if(s.equals(libri.getLibro(c).getTitolo())) b=true;
    associate a NPE sia meglio dividere il punto in cui prendi le tue stringhe e poi le confronti (pena una variabile locale in più)
    codice:
    Libro tempLib = libri.getLibro(c); 
    String titolo = tempLib.getTitolo();
    if(s.equals(titolo)){
              b=true;
    }
    a questo punto sai quando si presenta l'errore chi è null (ho supposto che la tua collection sia valida).

    Stabilizzato questo pezzo puoi anche raggrupparlo in un'unica istruzione come avevi fatto
    RTFM Read That F*** Manual!!!

  8. #8
    Grazie per le numerose risposte!! Siete gentilissimi, come su richiesta di Harlandraka_94 vi posto l'intero progetto...HERE.

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Originariamente inviato da kage994
    Grazie per le numerose risposte!! Siete gentilissimi, come su richiesta di Harlandraka_94 vi posto l'intero progetto...HERE.
    Per di far leggere tutto, hai seguito il suggerimento di valia? Qual è la riga (e quindi l'oggetto) incriminata?

  10. #10
    A quanto ho capito il metodo interessato parte dalla riga 296 di Biblioteca.java e finisce alla 314, il problema è: a me funziona, restituisce tutta quella pappardella di eccezioni solo se faccio una ricerca senza avere inserito nemmeno un libro...
    L'ascensore può scendere su e giù...
    by Prof di Sistemi

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.