Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    17

    [Java ]Immagine in JPanel

    Salve ragazzi, ancora una volta mi servirebbe un consiglio.
    Nella mia applicazione ho bisogno che un pannello abbia un immagine di sfondo, e sopra vi siano degli altri componenti. Riesco a fare tutto ma mi accorgo di una sorta di Bug, mi spiego.
    All'avvio dell'applicazione l'immagina di sfondo non si vede, mi si vede il grigio del pannello, però mi basta Allargare e Ridimensionare la finestra, per visualizzarla correttamente, se faccio cosi non sparisce piu, ma come potete capire è un po scomodo :-)
    sapete dirmi da cosa potrebbe dipendere? e come potrei evitare questo fastidioso giochetto?

    ps. l'immagine è caricata cosi:
    codice:
    Image sfondoImg = Toolkit.getDefaultToolkit().getImage("src/terzo/sfondoTerzo.png"); 
    JPanel sfondo = new JPanel(null){
    			public void paintComponent(Graphics g){
    				super.paintComponent(g);
    				g.drawImage(sfondoImg, 0, 0, null);
    			}
    		};

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

    Re: [Java ]Immagine in JPanel

    Originariamente inviato da clangel
    codice:
    Image sfondoImg = Toolkit.getDefaultToolkit().getImage("src/terzo/sfondoTerzo.png"); 
    JPanel sfondo = new JPanel(null){
    			public void paintComponent(Graphics g){
    				super.paintComponent(g);
    				g.drawImage(sfondoImg, 0, 0, null);
    			}
    		};
    Con il toolkit il caricamento delle immagini è "asincrono". Quindi nel momento esatto in cui il pannello si disegna a video per la prima volta potrebbe darsi che il caricamento della immagine non è ancora stato completato.

    Quindi: o attendi tu il completamento del caricamento (uso di MediaTracker) oppure più semplicemente fai:

    g.drawImage(sfondoImg, 0, 0, this);

    In modo che il pannello venga notificato (faccia da "observer") e si ridisegni man mano che la immagine si completa.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    17
    Grazie milleeeeeeeeeeee, basta mettere il this e va bene, ti ringrazio veramente tanto!

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.