[java] JApplet pb d'affichage

JApplet pb d'affichage [java] - Java - Programmation

Marsh Posté le 17-03-2003 à 14:28:08    

Bonjour,
 
j'ai fait une applet qui extend JApplet. Je place un jbouton sur mon container. Je lance l'applet, il s'affiche pas, mais lorsque je clique dessus, il apparait.
 
je comprend pas tout. Les jboutons, jtextfield ne s'affichent pas.
 
Par contre, les composants awt aucun pb.
Mon code :

Code :
  1. JButton calcul;
  2. Color fond = new Color(0,192,240);
  3. public void init() {
  4. Container cp = getContentPane();
  5. cp.setLayout(null);
  6. setBackground(fond);
  7. calcul = new JButton("Calcul" );
  8. calcul.setBounds(170,535,150,25);
  9. calcul.addActionListener(this);
  10. cp.addMouseMotionListener(this);
  11. cp.addMouseListener(this);
  12. cp.add(calcul);
  13. }


 
J'ai oublié un truc ??
 
Merci

Reply

Marsh Posté le 17-03-2003 à 14:28:08   

Reply

Marsh Posté le 17-03-2003 à 14:30:56    

quitte à utiliser swing, autant l'utiliser partout... [:spamafote]

Reply

Marsh Posté le 17-03-2003 à 14:32:25    

tu dis ca pourquoi ??
 
enfin pour qu'elle partie du code


Message édité par desch3 le 17-03-2003 à 14:35:05
Reply

Marsh Posté le 17-03-2003 à 14:40:49    

Pour c'elle la :

desch3 a écrit :

Bonjour,
 
Par contre, les composants awt aucun pb.
Mon code :
[cpp]
 
JButton calcul;  
Color fond = new Color(0,192,240);
 


 [:spamafote]


---------------
get amaroK plugin
Reply

Marsh Posté le 17-03-2003 à 14:43:48    

bah j'ai testé avec des composants awt pour voir si ca marchait. Et ca marche. Mais je ne veux pas en mettre, ca fait pas ce que je veux, j'ai besoin de JComboBox.
 
Le problème, c'est que je ne vois pas le composant swing sur ma fenetre, enfin je le vois une fois que je clique dessus :-(

Reply

Marsh Posté le 17-03-2003 à 14:57:35    

Ben en fait dans ton code, a priori, ya pas grand chose qui cloche, ça doit venir d'ailleurs, epure ton code, jusqu'a ce que ca soit stable ... comme ca tu verras d'ou ca vient  [:spamafote]


---------------
get amaroK plugin
Reply

Marsh Posté le 17-03-2003 à 14:59:27    

J'ai rien oublié, un setVisible ou autre ??

Reply

Marsh Posté le 17-03-2003 à 15:04:21    

Code :
  1. cp.setLayout(null);


 :ouch:


Message édité par Predicator le 17-03-2003 à 15:04:27
Reply

Marsh Posté le 17-03-2003 à 15:16:23    

C pour pouvoir placer mes composants ou je le souhaite, au pixel pret.
 

Code :
  1. Calcul.stBounds(...,...,...,...);

Reply

Marsh Posté le 17-03-2003 à 16:49:58    

Même en enlevant le maximum, j'ai toujours le même problème. Ya quelque chose que je dois mal faire,mais je vois pas koi.

Reply

Marsh Posté le 17-03-2003 à 16:49:58   

Reply

Marsh Posté le 17-03-2003 à 16:53:08    

moi non plus ...  :sarcastic:


---------------
get amaroK plugin
Reply

Marsh Posté le 17-03-2003 à 16:54:21    

un lepreschaun ? :whistle:

Reply

Marsh Posté le 17-03-2003 à 17:28:40    

ah enfin, c mon paint() qui fout la merde. C quoi a la place en swing ??

Reply

Marsh Posté le 17-03-2003 à 17:42:17    

desch3 a écrit :

ah enfin, c mon paint() qui fout la merde. C quoi a la place en swing ??

:heink:  
tu appelais paint() toi même ? mais lol ! on appelle jamais paint, mais repaint() [:tapai]


Message édité par Predicator le 17-03-2003 à 17:42:26
Reply

Marsh Posté le 17-03-2003 à 17:42:33    

desch3 a écrit :

ah enfin, c mon paint() qui fout la merde. C quoi a la place en swing ??


 
[:sh@rdar] (desolé, j'ai la flemme ...)


---------------
get amaroK plugin
Reply

Marsh Posté le 17-03-2003 à 17:44:33    

nan, j'appelais pas paint, mais j'avais des dessins sur mon applet. Qd j'enleve la methode paint, ca fonctionne, je vois tous mes composants. Par contre, qd je remet paint, je vois que mon dessin, et plus mes composants, ils sont derrieres.
 
C ma premiere applet en swing, mais c la misere. Faut que je créé un graphic pour faire mes dessins ??

Reply

Marsh Posté le 17-03-2003 à 17:45:40    

bobuse a écrit :


 
[:sh@rdar] (desolé, j'ai la flemme ...)


 
RTFM ? :heink:  
Retourne Ta Mother Fucker ??? :sweat:  
Radio-Télévision France Métropolitaine ? :whistle:

Reply

Marsh Posté le 17-03-2003 à 17:53:28    

desch3 a écrit :

nan, j'appelais pas paint, mais j'avais des dessins sur mon applet. Qd j'enleve la methode paint, ca fonctionne, je vois tous mes composants. Par contre, qd je remet paint, je vois que mon dessin, et plus mes composants, ils sont derrieres.
 
C ma premiere applet en swing, mais c la misere. Faut que je créé un graphic pour faire mes dessins ??


crache un peu plus de code, comme ta methode paint() ...
mais epure bien le code avant :D


---------------
get amaroK plugin
Reply

Marsh Posté le 17-03-2003 à 17:57:12    

Code :
  1. public void paint(Graphics g) {
  2. g.setColor(Color.white);
  3. g.drawLine(50,470,450,470);
  4. g.setColor(Color.black);//new Color(0,0,0));
  5. dessCercle(s1.getX(),s1.getY(),6,g);
  6. dessCercle(s2.getX(),s2.getY(),6,g);
  7. }


 
Après epuration. Je met n'importe quoi dans mon paint, mes composants disparaissent. Meme un g.DrawString.

Reply

Marsh Posté le 17-03-2003 à 18:10:26    

je comprend pas ce que tu veux faire...
tu devrais séparer la zone d'affichage et la zone des composants, ou alors tu dois redessiner les composants toi-même dans le Graphics

Reply

Marsh Posté le 17-03-2003 à 18:13:57    

Alors voila la fenetre que j'aimerais avoir.
 
Dans la premiere partie, en haut, j'aimerais pouvoir dessiner des cercles, des traits ...
 
Ensuite, vient une seconde partie en bas de mon applet ou je voudrais des Jtextfield, Jcombobox, et des jbutton.
 
Le problème du partage, c'est que je ne sais pas quel composant utiliser en haut pour pouvoir dessiner a l'interieur. Surtout que tout doit etre en swing.
 
Les 2 parties doivent communiquer, quand je clique sur un cercle, ca doit mettre a jour mon jtextfield.


Message édité par desch3 le 17-03-2003 à 18:16:03
Reply

Marsh Posté le 17-03-2003 à 18:23:49    

un JSplitPane te permet de séparer la zone en 2...
en haut tu mets un JPanel dans lequel tu dessines
en bas tu mets un JPanel avec ses composants JButton, JComboBox, etc...
 
ou sinon un bête JPanel avec un BorderLayout. tu mets le JPanel dessin dans la case "North", et le JPanel composants dans la case "South"


Message édité par Predicator le 17-03-2003 à 18:25:06
Reply

Marsh Posté le 17-03-2003 à 18:45:35    

Top nickel, ca fonctionne. Merci

Reply

Marsh Posté le 17-03-2003 à 18:50:06    

desch3 a écrit :

Top nickel, ca fonctionne. Merci

de rien :hello:

Reply

Marsh Posté le 17-03-2003 à 21:54:52    

Sinon, pour dessiner, i lest souvent conseiller d'utiliser un Canvas, ou un JCanvas (on peut pas y mettre de layout, je crois, donc pas de risque de se planter en y mettant des composants! :D)
 
A partça, ta première solution marchait, à condition de faire un  
super.paint() au début de ta méthode paint().

Reply

Marsh Posté le 17-03-2003 à 23:56:06    

Predicator a écrit :


ou sinon un bête JPanel avec un BorderLayout. tu mets le JPanel dessin dans la case "North", et le JPanel composants dans la case "South"


Heu oui, ce sera plus clair  comme ça, pasque dessiner des primitives géométriques sur des boutons, pkoi pas, mais bon spa top :/


---------------
get amaroK plugin
Reply

Marsh Posté le 18-03-2003 à 08:11:53    

Ca, c'est ben vrai!! :D
Mais sinon, je devais être dans le cul, hier soir!! JCanvas n'existe pas, et on dit "il est souvent conseillé" et pas "conseiller"...Mea culpa!
Bon, sinon, je confirme, pour dessiner, préfère donc un Canvas, qui a 2 avantages : on peut passer un GraphicsConfiguration au constructeur, pour définir les caractéristiques de l'environnemnt graphique (par exemple, on peut dessiner dans l'evironnement de l'écran, mais aussi dans celui de l'imprimante, ou gérer des périphériques virtuels, etc...Mais bon, c'est pas tous les jours que ça sert, ce truc)  
Par contre, l'autre avantage, c'est de pas être un Container...donc, pas de risque de lui ajouter des composants qui vont nous planter notre primitive paint() redéfinie avec amour et joie de vivre, comme tu as pu en faire l'expérience.
vala.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed