Sto cercando di risalire al metodo originario drawline, ma se cerco nella libreria graphics trovo solo
public abstract void drawLine();
dove si trova il metodo che la disegna nel vero senso della parola? ogni aiuto è apprezzato.
Sto cercando di risalire al metodo originario drawline, ma se cerco nella libreria graphics trovo solo
public abstract void drawLine();
dove si trova il metodo che la disegna nel vero senso della parola? ogni aiuto è apprezzato.
Ultima modifica di 4TheGame3; 26-01-2015 a 08:58
Il Graphics è una API astratta perché in realtà ci possono essere implementazioni differenti. Si può avere il Graphics per disegnare su un componente, su una immagine, su una stampante, ecc... E la implementazione può differire anche a seconda del S.O. e del fornitore del runtime Java. Infatti, se hai mai notato, un Graphics(2D) non lo istanzi mai tu ... ma ti viene sempre fornito dal framework.
Per quanto posso vedere io ora su Windows (Oracle JDK 8), il Graphics passato al paintComponent di un componente è di classe sun.java2d.SunGraphics2D. Il package principale è "sun", vuol dire che fa parte della API interna di Sun/Oracle, non "pubblica" né documentata. (FAQ - Sun Packages)
Se la cerchi su internet, puoi trovare il sorgente dal OpenJDK:
http://grepcode.com/file/repository....raphics2D.java
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Grazie dell'aiuto, ma ancora non riesco a trovare il metodo che viene usato per disegnarlo pixel dopo pixel, puoi copiarmelo qui sotto?
Il metodo drawLine usa un oggetto che implementa la interfaccia sun.java2d.pipe.PixelDrawPipe. Su grepcode.com il sorgente è un "iper-testo", ci sono tutti link. Naviga nella interfaccia PixelDrawPipe e poi nel tab "Hierarchy" sulla sinistra che ti mostra i sotto-tipi e prova a guardare le implementazioni.
Dico "prova" ... nel senso che non è certamente facile seguire quei sorgenti!
Domanda: perché hai bisogno di dettagli così specifici e interni??![]()
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Sto cercando di creare una libreria con cui possa "disegnare" più facilmente su un jframe
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
voglio fare una libreria che non sia dipendente da graphics che disegni pixel per pixel autonomamente. anche per le prestazioni
quindi vorresti buttare via tutta la,portabilità di java ed usare direttamente le librerie native del sistema? Perchè penso che ti renderai conto che scavando nell'oggetto Graphics arriverai a metodi che sono dichiarati come native, dato che come ti ha già detto andbin la parte Graphics dipende dal SO E dalla virtual machine usata
Mi serve un modo per disegnare pixel per pixel, non con linee quadrati o rettangoli.
Scusa ma ancora non capisco cosa ci sia da riscrivere in un api che ti permette di fare questo :
cioè esattamente quello che vuoi tu, disegnare un pixel...codice:public void paint(Graphics g) { super.paint(g); // define the position int locX = 200; int locY = 200; // draw a line (there is no drawPoint..) g.drawLine(locX, locY, locX, locY); }