Help !! Recuperer l'action d'un clic souris sur un boutton ...

hostile1 Messages postés 6 Date d'inscription mercredi 21 décembre 2005 Statut Membre Dernière intervention 25 décembre 2005 - 23 déc. 2005 à 23:05
xelaburns Messages postés 1 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 4 avril 2006 - 4 avril 2006 à 18:20
Bonjour, alors voila je vais essayer d'expliquer dus mieux possible mon soucis:
Je programme , enfin j'essaye , en langage java et j'aimerais récuperer l'action d'un clic sur mon boutton puis par cela entrainer un nouvel affichage , voici les codes:

1er classe:

import java.awt.*;
import java.awt.event.*;



public class Maframe extends Frame implements ActionListener{


public Maframe( Graphics g) {
super();

Button b1=new Button("Valider"); // Validation du choix des couleurs
b1.addActionListener(this);
add(b1);
show();
}

public void actionPerformed (ActionEvent evt) {
String boutton=evt.getActionCommand();
if (boutton=="Valider") {
Environnement.paint2();
}
}
}

2eme classe:

import java.applet.*;
import java.awt.*;

public class Environnement extends Applet {



static Graphics g;
static Maframe f = new Maframe(g);
static MonApplet a = new MonApplet();


public void paint(Graphics g)
{
super.init();
super.paint(g);
resize(400,500);
a.paint(g);
}


static public void paint2() {


a.paint2(g);
}
}
}

3e classe:


import java.awt.*;


public class MonApplet extends Canvas {

public void paint(Graphics g) {
super.paint(g);
g.setColor(Color.black);
g.drawOval(30,450-j*40,20,20);
}

public void paint2(Graphics g) {


super.paint(g);

g.setColor(Color.red);
g.drawOval(60,450-j*40,20,20);
repaint();
}


}

Et en résultant je n'ai pas de nouveau affichage d'une forme ovale comme je le souheterai mais une exeception


Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException



Que faire ? Toute solution serait la bienvenue afin d'entrainer l'afficher d'une seconde forme ovale aprés un clic sur le boutton.
Merci d'avance

13 réponses

sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
23 déc. 2005 à 23:35
a quel ligne se lance l'exception?
hostile1 Messages postés 6 Date d'inscription mercredi 21 décembre 2005 Statut Membre Dernière intervention 25 décembre 2005
23 déc. 2005 à 23:56
Alors il y en a pas mal quand méme...

Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException


at java.awt.Canvas.paint(Canvas.java:94)


at MonApplet.paint2(MonApplet.java:29)


at Environnement.paint2(Environnement.java:37)


at Maframe.actionPerformed(Maframe.java:34)


at java.awt.Button.processActionEvent(Button.java:388)


at java.awt.Button.processEvent(Button.java:356)


at java.awt.Component.dispatchEventImpl(Component.java:3955)


at java.awt.Component.dispatchEvent(Component.java:3803)


at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)


at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)


at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)


at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)


at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)


at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

Et cela au moment ou je click sur le boutton ....
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
24 déc. 2005 à 00:10
manque pas une classe ? celle ou il y a la methode main ?
hostile1 Messages postés 6 Date d'inscription mercredi 21 décembre 2005 Statut Membre Dernière intervention 25 décembre 2005
24 déc. 2005 à 13:28
Non , c'est une Applet

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
24 déc. 2005 à 13:34
ya pas un init() qqpart ?
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
24 déc. 2005 à 14:09
Salut,



remplace ce bout de code :



public void actionPerformed (ActionEvent evt) {
String boutton=evt.getActionCommand();
if (boutton=="Valider") {
Environnement.paint2();
}
}



Par :



public void actionPerformed (ActionEvent evt) {
String boutton=evt.getActionCommand();
if (boutton.CompateTo("Valider") == 0) {
Environnement.paint2();
}
}


___________________________________________________________________
DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
24 déc. 2005 à 14:11
Est-ce que tes variables a et f dans ta classe Envirronnement sont initialisées lors du clic sur le bouton ???

_____________________________________________________________________
DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
hostile1 Messages postés 6 Date d'inscription mercredi 21 décembre 2005 Statut Membre Dernière intervention 25 décembre 2005
24 déc. 2005 à 14:41
Alors , je pense qu'il serait judicieux de préciser que je suis vraiment un débutant ....
Ce qui pourrait expliquer le fait que je n'ai pas mis d'init() ou que je n'ai pas initialisées lors du clic sur le bouton les variables a et f (je ne sais pas le faire).

Sinon en utilisant la méthode compareTo , cela ne change rien , d'ailleur si je demande au programme d'afficher un message (System.out.println("...");) a l'écran lors d'un clic sur le boutton il l'effectue bien , ce qui me fait penser qu'il détecte bien mon clic mais refuse de me recréer une forme ovale.... et peu étre bien a cause d'initialisation de variable , vous avez des idées ?
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
24 déc. 2005 à 15:01
je suis sur qu'il manque qqchose
la variable j n'est jamais declare ni initialise
hostile1 Messages postés 6 Date d'inscription mercredi 21 décembre 2005 Statut Membre Dernière intervention 25 décembre 2005
24 déc. 2005 à 15:12
Ah oui mais non ....

J'ai fais un copier coller aprés modification de mon programme initiale , histoire d'isoler le porbléme et de facilité la compréhension de celui ci , et j'ai oublier de retirer la variable j.


La 3 classe est celle ci:


import java.awt.*;


public class MonApplet extends Canvas {

public void paint(Graphics g) {
super.paint(g);
g.setColor(Color.black);
g.drawOval(30,450*40,20,20);
}

public void paint2(Graphics g) {


super.paint(g);

g.setColor(Color.red);
g.drawOval(60,450*40,20,20);
repaint();
}

Donc au lancement de l'applet j'obtient bien une fenétre avec ma forme ovale et une fenétre avec un boutton valider , et lorsque je clicke sur celui ci:


Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException


at java.awt.Canvas.paint(Canvas.java:94)


at MonApplet.paint2(MonApplet.java:29)


at Environnement.paint2(Environnement.java:36)


at Maframe.actionPerformed(Maframe.java:34)


at java.awt.Button.processActionEvent(Button.java:388)


at java.awt.Button.processEvent(Button.java:356)


at java.awt.Component.dispatchEventImpl(Component.java:3955)


at java.awt.Component.dispatchEvent(Component.java:3803)


at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)


at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)


at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)


at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)


at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)


at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

Voila voila...
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
24 déc. 2005 à 15:21
lol je comprend rien a ton code
si je suis motiver je le refait
hostile1 Messages postés 6 Date d'inscription mercredi 21 décembre 2005 Statut Membre Dernière intervention 25 décembre 2005
25 déc. 2005 à 16:13
En fait comme mon programme est une applet , si je ne me trompe pas , il exécute les instruction classe Environnement puisqu'elle hérite de la classe Applet hors méthodes ainsi que la méthode paint de cette classe. Donc cela me créer une frame avec un boutton valider , et une fénetre canvas avec une forme ovale , et normalement grace a la détection d'évement sur le boutton , lors que je clique sur celui-ci une seconde forme ovale devrait alors s'afficher .... mais finalement non , puisque des execption se déclenchent alors...

Je ne sais pas si cela est plus compréhensible
xelaburns Messages postés 1 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 4 avril 2006
4 avril 2006 à 18:20


Rejoignez-nous