Visualizzazione dei risultati da 1 a 8 su 8

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    La cosa più semplice in linea generale sarebbe:

    a) crea il BufferedImage
    b) prendi il Graphics2D, disegna quanto vuoi, poi dispose() del Graphics2D

    Quindi si può settare la immagine dove si vuole (es. icon in JLabel)

    E' chiaro che così RIcrei ogni volta una immagine. Chiaramente devi sapere tu quante volte occorre farlo e quando. Ma questo approccio non dà alcuna questione particolare e non richiede alcun accorgimento particolare. Salvo che il set del icon nel JLabel va fatto nel contesto del Event Dispatch Thread. La creazione della immagine invece si potrebbe anche fare in un thread separato per non bloccare la UI.

    Altri approcci più sofisticati chiaramente possono richiedere altri accorgimenti e attenzioni particolari.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  2. #2
    Quote Originariamente inviata da andbin Visualizza il messaggio
    La cosa più semplice in linea generale sarebbe:

    a) crea il BufferedImage
    b) prendi il Graphics2D, disegna quanto vuoi, poi dispose() del Graphics2D

    Quindi si può settare la immagine dove si vuole (es. icon in JLabel)

    E' chiaro che così RIcrei ogni volta una immagine. Chiaramente devi sapere tu quante volte occorre farlo e quando. Ma questo approccio non dà alcuna questione particolare e non richiede alcun accorgimento particolare. Salvo che il set del icon nel JLabel va fatto nel contesto del Event Dispatch Thread. La creazione della immagine invece si potrebbe anche fare in un thread separato per non bloccare la UI.

    Altri approcci più sofisticati chiaramente possono richiedere altri accorgimenti e attenzioni particolari.
    Ho tentato a implementare Runnable nella classe Immagine che si occupa di disegnare e restituire l'immagine.

    Ed ho messo in void run() lo sleep:
    codice:
     class Immagine implements Runnable {
    
           private Graphics g;
           private BufferedImage image;            
           private Color colore;
           private Point P;
           
           public void run() {
              
               while(true) {
                   try {
                       
                   Thread.sleep(100);
                   
                   } catch(Exception ex) {};
                   
               }
            
           }
    
    //altro codice
    }
    Tuttavia nulla, si blocca sempre il tasto del JPanel.
    jabjoint

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 © 2026 vBulletin Solutions, Inc. All rights reserved.