Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Java.awt.graphics

  1. #1

    Java.awt.graphics

    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

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da 4TheGame3 Visualizza il messaggio
    Sto cercando di risalire al metodo originario drawline, ma se cerco nella libreria graphics trovo solo
    public abstract void drawLine();
    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.

    Quote Originariamente inviata da 4TheGame3 Visualizza il messaggio
    dove si trova il metodo che la disegna nel vero senso della parola?
    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.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Grazie dell'aiuto, ma ancora non riesco a trovare il metodo che viene usato per disegnarlo pixel dopo pixel, puoi copiarmelo qui sotto?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da 4TheGame3 Visualizza il messaggio
    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.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Sto cercando di creare una libreria con cui possa "disegnare" più facilmente su un jframe

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da 4TheGame3 Visualizza il messaggio
    Sto cercando di creare una libreria con cui possa "disegnare" più facilmente su un jframe
    E quindi, scusa la domanda ma sono pure curioso, sapere i dettagli intimi di come funziona il painting delle es. linee, cosa ti migliorerebbe o semplificherebbe??
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    voglio fare una libreria che non sia dipendente da graphics che disegni pixel per pixel autonomamente. anche per le prestazioni

  8. #8
    Quote Originariamente inviata da 4TheGame3 Visualizza il messaggio
    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

  9. #9
    Mi serve un modo per disegnare pixel per pixel, non con linee quadrati o rettangoli.

  10. #10
    Scusa ma ancora non capisco cosa ci sia da riscrivere in un api che ti permette di fare questo :
    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); 
    }
    cioè esattamente quello che vuoi tu, disegnare un pixel...

Tag per questa discussione

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.