Bonjour,
Je parle du drawLine() qui ce trouve dans Graphics, c'est une méthode abstraite .... ok
Donc si je fait:
ou ce trouve le code qui dessine à l'écrans ma ligne?Code:graphics.drawLine(1,1,2,1);
Version imprimable
Bonjour,
Je parle du drawLine() qui ce trouve dans Graphics, c'est une méthode abstraite .... ok
Donc si je fait:
ou ce trouve le code qui dessine à l'écrans ma ligne?Code:graphics.drawLine(1,1,2,1);
dans l'implémentation concrète de la classe, qui dépends de comment t'as récupéré le Graphics.
Il vient de là:
Code:
1
2
3 public class Panel extends JPanel{ public void paintComponent(Graphics g){} }
Salut,
Tu voudrais savoir comment est implémenté drawLine(), par curiosité je suppose ? Le propre des interfaces ou classes abstraites est de proposer des méthodes dont on ne connait pas forcément l'implémentation, parce qu'on n'en a pas besoin : le principale est de savoir ce que fait l'appel de la méthode pour les paramètres donnés. Le problème c'est qu'on ne connait pas l'implémentation concrète : elle dépend de plein de choses. Pour ce qui est de Graphics, dans le contexte d'un composant Swing, ça va dépendre essentiellement du JDK : pour un JDK Oracle, ce sera sun.java2d.SunGraphics2D. Tu peux connaitre le nom de la classe en ajoutant une trace dans la méthode paintComponent() par exemple (pour afficher graphics.getClass()). Ensuite, le source n'est pas forcément disponible (pas forcément public). Si il l'est, tu pourras regarder l'implémentation concrète. Pour sun.java2d.SunGraphics2D, tu peux regarder ici (En revanche, tu verras que tu vas te lancer dans une recherche labyrinthique puisque l'exécution de drawLine est déléguée à une classe qui implémente sun.java2d.pipe.PixelDrawPipe (une interface, dont tu devras rechercher l'implémentation concrète)... Bon courage !
Pour répondre simplement à la question de base, dans ce cas là, il est implémenté dans une classe concrète qui dépend de la JVM et permet d'intéragir avec l'écran de l'OS.
Merci les gars, pour vos réponses.
En fait oui, c'était bien par curiosité que je posais cette question.
Je me demandai comment (JAVA) ce débrouillait à communiquer avec mon écran pour y afficher des choses.
Que se passe t'il dans les couches les plus primitives.
D'après vous, je ne peut pas savoir tout ce qui s'y déroule?
c'est plutot tu ne veux pas le savoir. Tu peux en commencant un long travail de fouille. Mais soit tu tombera sur un algo qui remplis un buffer java si le Graphics est purement software, soit sur des classes natives écrites en C ou assembleur si les Graphics mappent un truc comme directX :)
D'accord je comprend.
Merci pour ces éclaircissement, j'en ferrais certainement bon usage.
:zoubi: