2013-05-13 17 views

risposta

11

si potrebbe usare un BufferedImage:

BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); 
Graphics2D graphics2D = image.createGraphics(); 
+0

Mi piace la risposta: come visualizzare l'immagine? – necromancer

+2

In un ImageIcon visualizzato da una JLabel. 1+ –

+0

scelta difficile che risponde ad accettare, ho scelto questo per la sua ultra-semplicità e ultra-portabilità. funzionerà sul lato server e su un desktop. l'unico difetto con questo approccio è che non è l'ideale per il desktop perché non è possibile intercettare gli eventi del mouse che è possibile utilizzare per eseguire il debug. ma non è quello che ho chiesto. Grazie per la magnifica risposta! – necromancer

5

Il modo più semplice e sicuro è quello di utilizzare il riferimento Graphics in paintComponent e trasmettere come necessario. In questo modo Object è inizializzato correttamente. Questo riferimento può essere passato ad altri metodi di verniciatura personalizzati come richiesto.

@Override 
public void paintComponent(Graphics g) { 
    super.paintComponent(g); 
    Graphics2D g2d = (Graphics2D)g; 
    ... 
} 
+0

cercato @ soluzione simile e un po 'più completa del greedybuddha di sotto ma il mio programma esce subito dopo averla creata. – necromancer

+0

@randomstring: allora stai facendo qualcosa di sbagliato. Che cosa? - Non abbiamo idea dato che non mostri il codice. 1+ –

+0

grazie, ho bisogno di aggiungerlo in un JFrame. avrei dovuto essere più chiaro nella mia domanda quanto sono un principiante :) – necromancer

3

Probabilmente dovresti solo creare un JPanel e dipingerlo.

public class MyPanel extends JPanel { 
    @Override 
    public void paintComponent(Graphics g) { 
     super.paintComponent(g); 
     Graphics2D g2d = (Graphics2D) g; 
     .... // my painting 
    } 
} 
+0

, il mio programma termina semplicemente dopo aver creato il jpanel – necromancer

+0

@randomstring: lo stai inserendo in un JFrame e visualizzando JFrame? Hai mai seguito dei tutorial Swing? –

+0

no, principiante. ma ho capito di aggiungerlo in una JFrame. Grazie! – necromancer