Help !! Recuperer l'action d'un clic souris sur un boutton ...
hostile1
Messages postés6Date d'inscriptionmercredi 21 décembre 2005StatutMembreDernière intervention25 décembre 2005
-
23 déc. 2005 à 23:05
xelaburns
Messages postés1Date d'inscriptionmardi 30 novembre 2004StatutMembreDerniè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);
}
hostile1
Messages postés6Date d'inscriptionmercredi 21 décembre 2005StatutMembreDernière intervention25 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 ?
hostile1
Messages postés6Date d'inscriptionmercredi 21 décembre 2005StatutMembreDernière intervention25 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);
}
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)
hostile1
Messages postés6Date d'inscriptionmercredi 21 décembre 2005StatutMembreDernière intervention25 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...