Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [java] Immagini

  1. #1

    [java] Immagini

    Come faccio ad inserire un'immagine in una applicazione swing? ho provato con Image im=getImage(getCodeBase(), "prova.jpg"), però mi dà errore. qualcuno mi può aiutare?
    grazie a tutti!

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Usa una classe come questa:
    codice:
    private class Immagine extends JPanel {
       private Image img;
       public Immagine(Image img) { this.img = img; repaint(); }
       public void paint(Graphics g) {
          if (img != null) {
             // Qui disegno effettivamente l'immagine
             g.drawImage(img, 0, 0, img.getWidth(this), img.getHeight(this), this);
          }
       }
    
       public void cambiaImmagine(Image img) { this.img = img; repaint(); }
    }
    Questa è molto minimale, ma funziona. Si usa in questo modo:
    codice:
    Immagine img = new Immagine( Toolkit.getDefaultToolkit().createImage("prova.jpg") );
    getContentPane().add(img);
    In pratica uso un pannello per disegnarci dentro l'immagine e trattarla come un componente qualsiasi, come un pulsante...


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    ma facendo in questo modo, poi sarei in grado di spostarla nel caso ci fosse qualche evento? scusa ma nn capisco cosa voglia dire queta parte
    codice:
    Immagine img = new Immagine( Toolkit.getDefaultToolkit().createImage("prova.jpg") );
    grazie

    EDIT: forse se ti spiego quello che devo fare è meglio.io dovrei prendere un'immagine, visualizzare e ad ogni evento di timer farla spostare. usando questo tipo di oggetto è possibile fare una cosa del genere?

  4. #4
    ok scusa, sono riuscito a far apparire l'immagine. ora però il mio problema è uno solo. se voglio far spostare l'immagine ad ogni vento di timer, come faccio? ho provato con AffineTransform ma nn funziona, c'è qualche metodo simile? nel senso, nell'actionListener del timer, che metodi devo richiamare per fare in modo che l'immagine si sposti di una quantità da me definita? grazie mille per la tua disponibilità!

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Cosa intendo per "spostare l'immagine"? Se intendo che l'immagine deve cambiare la sua posizione all'interno della finestra (o comunque del suo contenitore), basta che ti vada a modificare la sua posizione con un setLocation() oppure tramite setBounds(). Attenzione: non devi avere un LayoutManager altrimenti la posizione la decide lui.
    Esempio:
    codice:
    Immagine img = new Immagine(...);
    img.setLocation(10, 10);   //L'immagine è posizionata nella coordinata (10, 10)
    
    ...
    
    // Sposto l'immagine alla coordinata (20, 20)
    img.setLocation(20, 20);
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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.