Qual è il modo più semplice in Java SE 7 per ottenere un'istanza solo per tracciare alcuni punti per il debug? Ambiente desktopCome creare un'istanza di Graphics2D?
risposta
si potrebbe usare un BufferedImage
:
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
Graphics2D graphics2D = image.createGraphics();
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;
...
}
cercato @ soluzione simile e un po 'più completa del greedybuddha di sotto ma il mio programma esce subito dopo averla creata. – necromancer
@randomstring: allora stai facendo qualcosa di sbagliato. Che cosa? - Non abbiamo idea dato che non mostri il codice. 1+ –
grazie, ho bisogno di aggiungerlo in un JFrame. avrei dovuto essere più chiaro nella mia domanda quanto sono un principiante :) – necromancer
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
}
}
, il mio programma termina semplicemente dopo aver creato il jpanel – necromancer
@randomstring: lo stai inserendo in un JFrame e visualizzando JFrame? Hai mai seguito dei tutorial Swing? –
no, principiante. ma ho capito di aggiungerlo in una JFrame. Grazie! – necromancer
Mi piace la risposta: come visualizzare l'immagine? – necromancer
In un ImageIcon visualizzato da una JLabel. 1+ –
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