Java.swing
Fermé
thomason
Messages postés
91
Date d'inscription
jeudi 10 juillet 2008
Statut
Membre
Dernière intervention
2 septembre 2008
-
18 juil. 2008 à 09:33
tété - 18 juil. 2008 à 10:12
tété - 18 juil. 2008 à 10:12
7 réponses
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
18 juil. 2008 à 09:35
18 juil. 2008 à 09:35
Bonjour,
Est ce que tu as implémenté un écouteur d'évènement sur le bouton afin de déclencher une action lors d'un clic sur ce dernier ?
Est ce que tu as un référence sur le text en question au sein de la classe java qui s'occupe d'effectuer ce "control" ?
Le mieux si tu le peux est que tu poste le code en relation avec ton problème.
Est ce que tu as implémenté un écouteur d'évènement sur le bouton afin de déclencher une action lors d'un clic sur ce dernier ?
Est ce que tu as un référence sur le text en question au sein de la classe java qui s'occupe d'effectuer ce "control" ?
Le mieux si tu le peux est que tu poste le code en relation avec ton problème.
tu as un écouteur sur ton bouton ?
Dans ton écouteur d'évènement tu mets un truc du style
text.value=""
de mémoire hein j'ai pas fait de java depuis 6 mois.
Dans ton écouteur d'évènement tu mets un truc du style
text.value=""
de mémoire hein j'ai pas fait de java depuis 6 mois.
thomason
Messages postés
91
Date d'inscription
jeudi 10 juillet 2008
Statut
Membre
Dernière intervention
2 septembre 2008
18 juil. 2008 à 09:40
18 juil. 2008 à 09:40
voici le code ce que je veux c'est la méthode qui me permet d'effectuer l'action
import javax.swing.*;
import java.awt.*;
public class bab extends JFrame {
JFrame fen =new JFrame();
JButton bot = new JButton("supprimez");
JTextField text = new JTextField();
JLabel label=new JLabel();
public bab(){
super();
fen.setLayout(null);
fen.setBounds(100,200,600,350);
bot.setBounds(250, 100,100 ,30 );
text.setBounds(200, 50, 150, 20);
label.setBounds(100,50,150,20);
label.setText("Votre nom svp : ");
fen.setVisible(true);
fen.add(bot);
fen.add(text);
fen.add(label);
fen.setDefaultCloseOperation(fen.EXIT_ON_CLOSE);
}
public static void main(String[]args){
new bab();
}
}
import javax.swing.*;
import java.awt.*;
public class bab extends JFrame {
JFrame fen =new JFrame();
JButton bot = new JButton("supprimez");
JTextField text = new JTextField();
JLabel label=new JLabel();
public bab(){
super();
fen.setLayout(null);
fen.setBounds(100,200,600,350);
bot.setBounds(250, 100,100 ,30 );
text.setBounds(200, 50, 150, 20);
label.setBounds(100,50,150,20);
label.setText("Votre nom svp : ");
fen.setVisible(true);
fen.add(bot);
fen.add(text);
fen.add(label);
fen.setDefaultCloseOperation(fen.EXIT_ON_CLOSE);
}
public static void main(String[]args){
new bab();
}
}
ouais en gros t'as aucun écouteur donc tu ne sais pas faire une action avec un bouton c'est là qu'est le pb.
thomason
Messages postés
91
Date d'inscription
jeudi 10 juillet 2008
Statut
Membre
Dernière intervention
2 septembre 2008
18 juil. 2008 à 09:49
18 juil. 2008 à 09:49
tu peux m'aider?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Il faut que tu implémente dans ta la classe l'interface ActionListener pour commencer.
ce qui va donner
public class bab extends JFrame implements ActionListener {
...ton code
}
Ensuite dans ta classe il faut que tu dises à ton bouton sur quoi il va écouter (par exemple la fenêtre en cours)
donc tu fais
JButton bot = new JButton("supprimez");
bot.addActionListener(la tu mets l'objet sur lequel ton écouteur va agir) ;
exemple
bot.addActionListener(this); pour la fenêtre en cours
si tu mets que ce code tu verras normalement une erreure car l'implémentation de l'interface ActionListener nécessite la déclaration de la méthode actionPerformed.
donc dans ta classe tu rajoutes cette méthode ou tu vas traiter l'évènement lié au clic du bouton
public void actionPerformed(ActionEvent e) {
ton traitement
}
Voila en gros le raisonnement
Encore une fois c'est de mémoire donc peut être qu'il y a des erreurs mais au moins t'as là les principaux intervenants.
ce qui va donner
public class bab extends JFrame implements ActionListener {
...ton code
}
Ensuite dans ta classe il faut que tu dises à ton bouton sur quoi il va écouter (par exemple la fenêtre en cours)
donc tu fais
JButton bot = new JButton("supprimez");
bot.addActionListener(la tu mets l'objet sur lequel ton écouteur va agir) ;
exemple
bot.addActionListener(this); pour la fenêtre en cours
si tu mets que ce code tu verras normalement une erreure car l'implémentation de l'interface ActionListener nécessite la déclaration de la méthode actionPerformed.
donc dans ta classe tu rajoutes cette méthode ou tu vas traiter l'évènement lié au clic du bouton
public void actionPerformed(ActionEvent e) {
ton traitement
}
Voila en gros le raisonnement
Encore une fois c'est de mémoire donc peut être qu'il y a des erreurs mais au moins t'as là les principaux intervenants.
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
18 juil. 2008 à 10:07
18 juil. 2008 à 10:07
Ce n'est pas exact, le fait d'implémenter l'interface ActionListener sur la classe elle-même va permettre d'effectuer des actions dès qu'une action de l'utilisateur sera faire sur la fenêtre (puisque la classe étends JFrame) elle même, mais pas forcément sur le bouton en question.
Mieux vaut implémenter un controleur d'action directement sur le bouton comme j'ai montré un peu plus haut.
EDIT: je n'ai rien dit, ta méthode peut fonctionner même si ce n'est pas la façon la plus "clair" pour moi de faire ça.
Mieux vaut implémenter un controleur d'action directement sur le bouton comme j'ai montré un peu plus haut.
EDIT: je n'ai rien dit, ta méthode peut fonctionner même si ce n'est pas la façon la plus "clair" pour moi de faire ça.
Oui mais si tu mets bot.addActionListener(this); c'est bien sur le bouton que ca agit, non ?
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
18 juil. 2008 à 10:11
18 juil. 2008 à 10:11
Oui oui. C'est juste que ajouter un écouteur qui déclenche la méthode actionPerformed attribuée à la fenêtre de l'application, je trouve ça un peu embrouillant, car si tu as beaucoup de contrôles dans ta fenêtre, il faudra faire une gestion de la source de l'émission de l'action afin de faire le traitement correct.
A chacun sa façon de gérer, ça va dépendre surtout de ce que veux faire la personne finalement :)
A chacun sa façon de gérer, ça va dépendre surtout de ce que veux faire la personne finalement :)
18 juil. 2008 à 09:44
import javax.swing.*;
import java.awt.*;
public class bab extends JFrame {
JFrame fen =new JFrame();
JButton bot = new JButton("supprimez");
JTextField text = new JTextField();
JLabel label=new JLabel();
public bab(){
super();
fen.setLayout(null);
fen.setBounds(100,200,600,350);
bot.setBounds(250, 100,100 ,30 );
text.setBounds(200, 50, 150, 20);
label.setBounds(100,50,150,20);
label.setText("Votre nom svp : ");
fen.setVisible(true);
fen.add(bot);
fen.add(text);
fen.add(label);
fen.setDefaultCloseOperation(fen.EXIT_ON_CLOSE);
}
public static void main(String[]args){
new bab();
}
}
18 juil. 2008 à 09:46
18 juil. 2008 à 09:56
Et la méthode 'resetTextValue' qui reset le texte :
Incorporer dans ton code voilà ce que ça donnera :
Je n'ai pas testé donc je n'affirme pas que cela fonctionne, mais le principe est là. A toi de voir des tutoriels sur le net, tu tape 'Java tutoriel ActionListener' sur google et tu devrais trouver des choses