Visualizzazione dei risultati da 1 a 4 su 4

Discussione: stampare immagine

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    25

    stampare immagine

    Buongiorno a tutti sto cercando di stampare un immagine su un frame ma non funziona, qualcuno mi saprebbe dire il perchè?


    codice:
    import java.awt.*;
    import javax.swing.JPanel;
    
    
    public class Pannello extends JPanel{
        Image img1;
        
        //CARICO L'IMMAGINE
        public Pannello(){
            setBackground(Color.CYAN);
            setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
            Toolkit tk = Toolkit.getDefaultToolkit();
            img1 = tk.getImage("/img/fiore.png");
            MediaTracker mt = new MediaTracker(this);
            mt.addImage(img1,1);
            try { mt.waitForID(1); }
            catch ( InterruptedException e ){Thread.currentThread().interrupt();}
        }
        
        //DISEGNO UN PO DI COSE A MANO ED UN IMG
         public void paintComponent(Graphics g){
             super.paintComponent(g);
             g.setColor(Color.red);
             // white, gray, lightGray, darkGray
             // red, green, yellow, pink, etc. etc.
             g.fillRect(20,20, 100,80);
             g.setColor(Color.pink);
             g.drawRect(30,30, 80,60);
             g.setColor(Color.green);
             g.drawString("ciao",50,60);
             g.drawImage(img1,0,0,30,30,this);
             } 
    }

    Stranamente funziona tutto tranne il drawImage. non capisco
    Ultima modifica di LeleFT; 31-07-2017 a 13:23 Motivo: Aggiunti i tag CODE

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da salmo Visualizza il messaggio
    Buongiorno a tutti sto cercando di stampare un immagine su un frame ma non funziona, qualcuno mi saprebbe dire il perchè?
    Ci sono due questioni:

    1) tk.getImage("/img/fiore.png")

    "/img/fiore.png" è direttamente sul file-system. Sei su sistema Linux/Unix-like?? Se sì, /img è nella root. E' quello che pensavi/volevi??

    2) Il tracking con MediaTracker in effetti non serve se accetti che il caricamento sia asincrono/progressivo. Puoi togliere tranquillamente il tracking, quello che è importante è quel this nel drawImage

    g.drawImage(img1,0,0,30,30,this);

    L'ultimo argomento è il "observer", vuol dire che il tuo pannello fa da observer. Man mano che il toolkit carica la immagine, invocherà progressivamente più volte il painting per disegnare la immagine con qualcosa in più.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    25
    Mi trovo su windows 10, e l'immagine si trova insieme alle classi dentro la cartella src/img/, le classi solo nel src/. Come faccio a caricare l'immagine se tolgo il tracking?

  4. #4
    Invece di creare un oggetto img1 della classe Image crea un oggetto img1 della classe BufferedImage;
    Es.
    BufferedImage img1 = ImageIO.read(getClass().getResource("/posizione"));
    e disegna la foto col metodo drawImage.

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.