Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    207

    [JAVA] problema con getImage()

    Ragazzi, posso fare questo confronto??

    buttonicon.getImage() == null;

    mi sa che nn posso farlo....xkè nn mi esegue le istruzioni ke ci sono nell'if...però a questo punto come posso dire...SE il bottone nn ha nessuna immagine ALLORA fai queste azioni..

    grazie..

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254

    Re: [JAVA] problema con getImage()

    Originariamente inviato da jin85
    Ragazzi, posso fare questo confronto??

    buttonicon.getImage() == null;
    Che cosa è 'buttonicon'???[/QUOTE]È un ImageIcon che hai ricavato es. da un JButton??

    Comunque non ti serve .... se hai un ImageIcon, allora l'Image associato c'è di sicuro.

    Semplicemente: if (button.getIcon() == null) { .... }
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    207
    Allora il mio problema è questo :

    ho un'interfaccia di questo tipo :




    Io voglio che quando vado a cliccare su Reperibilità (mattina o notte), deve colorarmi il background del tasto nel modo corrispondente..in particolare se sul tasto c'è già un'icona di questi quattro tipi:

    ferie
    esonerato
    congedo straordinario
    malattia

    deve cancellare l'icona...e settare solo il background del colore corrispondente...

    bene...questa cosa la riesco a fare su tutti i tasti del calendario, però quando clicco su un tasto ke nn ha nessuna icona (come le domeniche ke vedi nel mio calendario ora)..bè a quel punto il programma mi da un'eccezzione di questo tipo :

    codice:
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at interfacciaInsMod.Cella$1.actionPerformed(Cella.java:229)
    	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    	at java.awt.Component.processMouseEvent(Unknown Source)
    	at javax.swing.JComponent.processMouseEvent(Unknown Source)
    	at java.awt.Component.processEvent(Unknown Source)
    	at java.awt.Container.processEvent(Unknown Source)
    	at java.awt.Component.dispatchEventImpl(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Window.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.EventQueue.dispatchEvent(Unknown Source)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.run(Unknown Source)
    l'errore mi viene segnalato in questa porzione di codice:

    codice:
    if (Pannello_inserimento_modifica.tastoPremutoReperibilita.toString()== "Giorno"){ 
    											//jButton1.setIcon(new ImageIcon(getClass().getResource("/RM.jpg")));
    											
    											if (buttonicon.getImage()==ferie.getImage()||buttonicon.getImage()==esonerato.getImage()||buttonicon.getImage()==congedo.getImage()||buttonicon.getImage()==malattia.getImage()||jButton1.getIcon()==null){
    												
    												jButton1.setIcon(null);}
    												jButton1.setBackground(Color.cyan);}
    											else{  
    												//jButton1.setIcon(new ImageIcon(getClass().getResource("/RN.jpg")));
    												if (buttonicon.getImage()==ferie.getImage()||buttonicon.getImage()==esonerato.getImage()||buttonicon.getImage()==congedo.getImage()||buttonicon.getImage()==malattia.getImage()){
    												jButton1.setIcon(null);}
    												jButton1.setBackground(new Color(0,128,128));}
    la riga 229 dell'eccezzione è questa qui :

    codice:
    if (buttonicon.getImage()==ferie.getImage()||buttonicon.getImage()==esonerato.getImage()||buttonicon.getImage()==congedo.getImage()||buttonicon.getImage()==malattia.getImage()||jButton1.getIcon()==null)
    nn riesco a capire dove sta il problema..

    se ti possono servire queste sn le dichiarazioni ke stanno prima del blocco if che ti ho postato:
    codice:
    ImageIcon buttonicon = (ImageIcon) jButton1.getIcon();
    										ImageIcon ferie = new ImageIcon(getClass().getResource("/travel1.jpg"));
    										ImageIcon esonerato = new ImageIcon(getClass().getResource("/stop1.jpg"));
    										ImageIcon congedo = new ImageIcon(getClass().getResource("/earth1.jpg"));
    										ImageIcon malattia = new ImageIcon(getClass().getResource("/soccorso1.jpg"));

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    207
    nn lo so..ho risolto in questo modo... :

    codice:
    if (Pannello_inserimento_modifica.tastoPremutoReperibilita.toString()== "Giorno"){ 
    											//jButton1.setIcon(new ImageIcon(getClass().getResource("/RM.jpg")));
    											
    											if (jButton1.getIcon()==null){
    												jButton1.setBackground(Color.cyan);
    												}
    											else {
    												if (buttonicon.getImage()==ferie.getImage()||buttonicon.getImage()==esonerato.getImage()||buttonicon.getImage()==congedo.getImage()||buttonicon.getImage()==malattia.getImage()/*jButton1.getIcon()==null*/)
    													jButton1.setIcon(null);//jButton1.setBackground(Color.cyan);
    													}
    												jButton1.setBackground(Color.cyan);}
    										else{  
    												//jButton1.setIcon(new ImageIcon(getClass().getResource("/RN.jpg")));
    												if (buttonicon.getImage()==ferie.getImage()||buttonicon.getImage()==esonerato.getImage()||buttonicon.getImage()==congedo.getImage()||buttonicon.getImage()==malattia.getImage()){
    												jButton1.setIcon(null);}
    												jButton1.setBackground(new Color(0,128,128));}
    									}
    In pratica ho anticipato il controllo sul tasto senza icona...xkè altrimenti mi dava sempre null pointer exception.

    Dimmi se ho fatto bene o sbagliato..

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Già questa riga

    if (Pannello_inserimento_modifica.tastoPremutoReperib ilita.toString()== "Giorno")

    è dubbia. Sei sicuro che il reference che fornisce quel toString() sia esattamente uguale a quello della stringa literal???


    Poi comunque, se hai 4 ImageIcon ferie, esonerato, congedo, malattia ed hai sempre e solo questi 4 oggetti che imposti sui componenti, allora confronta gli ImageIcon, non l'Image nel ImageIcon!!!

    Se vuoi verificare se un JButton ha la icona di congedo, farai es.:

    if (tuoButton.getIcon() == congedo)
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    207
    ho capito le tue correzzioni...però al di la di quelle....potresti vedere il mio penultimo post...quello dove dico di aver risolto....e dirmi se va bene quella soluzione o no...

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da jin85
    ho capito le tue correzzioni...però al di la di quelle....potresti vedere il mio penultimo post...quello dove dico di aver risolto....e dirmi se va bene quella soluzione o no...
    Ma non vedo perché tu debba andare ad invocare getImage() sugli ImageIcon.

    Hai caricato 4 ImageIcon, giusto? Sono solamente questi 4 oggetti che usi e imposti sui componenti, giusto?

    Allora in un JButton getIcon() può tornare null (= niente icona) o al massimo uno dei 4 reference che tu hai degli ImageIcon. Ti è chiara la cosa?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    207
    si si ...mi era chiarissima..infatti ora ho modificato l'if facendo come hai detto...e nn mi restituisce più l'eccezzione....forse erano i getImage ke davano problemi di reference..

    Cmq la mia soluzione era solo un modo meno elengante di risolvere appunto il problema...xkè cmq l'eccezzione era sparita...

    Ma il tuo suggerimento è sicuramente più giusto

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    207
    c'è un problema però ora....ho modificato l'if come mi avevi detto in questo modo :

    codice:
    if (Pannello_inserimento_modifica.tastoPremutoReperibilita.toString()== "Giorno"){ 
    											//jButton1.setIcon(new ImageIcon(getClass().getResource("/RM.jpg")));
    											
    											if (jButton1.getIcon()==ferie||jButton1.getIcon()==esonerato||jButton1.getIcon()==congedo||jButton1.getIcon()==malattia){
    												jButton1.setIcon(null);}
    												jButton1.setBackground(Color.cyan);}
    ma nn mi esegue il setIcon(null); quando trova una icona uguale a ferie,esonerato,congedo o malattia...come mai??

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    207
    è stranissimo....i 4 controlli mi restituiscono sempre false...

    ma come mai...

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.