Choisir x et y en écrivant dans un Componant [Débutant inside] - Java - Programmation
Marsh Posté le 16-12-2003 à 17:46:29
tu sais ce que ça veut dire "NullPointerException" ?
Marsh Posté le 16-12-2003 à 18:08:34
Euh... [Débutant inside] <=
Ca veut dire qu'on essaye d'utiliser une variable pour laquelle on n'a pas alloué d'espace mémoire, c'est ça ?
(Cent ans après...) En fait ça y'est j'y suis, hier j'avais essayé de faire
Code :
|
mais il me dit : java.awt.Graphics is abstract; cannot be instantiated
voilà et c'est à cause de ça que je me demandais comment écrire dans un componant, parce qu'avec une applet on se sert de la variable Graphics uniquement (enfin à ce que j'ai vu) dans la fonction paint (Graphics g), où là bien sûr on n'a pas à initialiser la variable Graphics.
Merci pour ton aide en tout cas.
Marsh Posté le 16-12-2003 à 18:13:37
FrigoAcide a écrit : Euh... [Débutant inside] <=
|
Non, c'est pas ça. Il faut d'abord essayer de comprendre ce que représente un objet de la classe Graphics. Je sais pas trop comment expliquer, en prog windows c'est un peu l'équivalent du DeviceContext ; en gros ca représente le prériphérique chargé de l'affichage, ici ton écran (en TRES gros).
Enfin tout ça pour dire que l'objet renvoyé par getGraphics() ne sera pas valide si l'objet sur lequel tu appelles la méthode n'est pas visible à l'écan.
Marsh Posté le 16-12-2003 à 18:14:25
ReplyMarsh Posté le 16-12-2003 à 18:15:17
Et puis passe par un label, qu'est ce que tu t'emmerdes avec drawString().
EDIT : 2500ème post, R3g.
Marsh Posté le 16-12-2003 à 18:51:24
Cherrytree a écrit : Et puis passe par un label, qu'est ce que tu t'emmerdes avec drawString(). |
OK, mais je veux décider à quelle coordonnée x je veux placer mon texte, et tout ce que j'ai trouvé pour le label, c'est un argument qui permet d'alligner le texte (gauche, centre, droit), pas assez précis pour ce que je veux faire donc...
Y'a pas un component qui existe, et qui me permette de faire ce que je veux ?
Marsh Posté le 16-12-2003 à 19:03:23
FrigoAcide a écrit : |
Canvas est fait pour ça. Et tu était sur la bonne voie, c'est juste que tu dois d'abord afficher ton composant avant d'appeler getGraphics()
Citation : public Graphics getGraphics()Creates a graphics context for this component. This method will return null if this component is currently not displayable. |
Cherrytree > je regarde jamais le nombre de posts, j'avais pas vu
Marsh Posté le 16-12-2003 à 19:04:32
Le truc entre [ ] dans le titre c'est le langage en général hein Le fait que tu dois débutant on s'en fout
Marsh Posté le 16-12-2003 à 19:13:13
R3g a écrit : Canvas est fait pour ça. Et tu était sur la bonne voie, c'est juste que tu dois d'abord afficher ton composant avant d'appeler getGraphics()
|
En effet je viens de m'en rendre compte. Je peux faire monPanel.getGraphics ().drawString ("phrase de test", 100, 100); après l'affichage de ma frame, mais j'obtiens aucun résultat.
Sinon je vais essayer Canvas, merci.
Citation : Le truc entre [ ] dans le titre c'est le langage en général hein Le fait que tu dois débutant on s'en fout |
Clair j'ai même pas précisé que c'était en java, dsl.
Marsh Posté le 18-12-2003 à 14:32:50
Sinon, une solution (qui n'est pas génial) pour mettre un composant à l'aide de ces coordonnées cartésiennes est d'annulée le Layout par défaut de ton panel ou de ta fenêtre
(setLayout(null)
Sinon, le Canevas est la meilleur solution. Ainsi, tu pourras le réutiliser ailleurs
Marsh Posté le 16-12-2003 à 17:23:34
Salut, je cherche à écrire du texte à des coordonnées précises dans n'importe quel componant, ex un label. En fait c'est pour faire défiler un texte dans une frame qui contient d'autres éléments.
Si c'était une applet, je ferais
mais là je veux faire un truc plutôt comme :
Mais ça va pas, il me dit
Exception in thread "main" java.lang.NullPointerException
at test.<init>(test.java:11)
at test.main(test.java:20)
au moment de l'éxecution, la ligne 11 étant bien sûr monPanel.getGraphics().drawString (msg, x, y);
Voilà, pouvez-vous m'aider ?