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
Bonjour,
j'ai un bouton et un textfield en java.swing: le problème est que je n'arrive pas à
effacer le contenu du textfield avec un click sur le bouton.
svp je veux la syntaxe en java.mon bouton se nomme "bot" et mon textfield "text".
merci....

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
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.
0
thomason Messages postés 91 Date d'inscription jeudi 10 juillet 2008 Statut Membre Dernière intervention 2 septembre 2008
18 juil. 2008 à 09:44
voici le code je veux la syntaxe de la méthode


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();
}
}
0
tété > thomason Messages postés 91 Date d'inscription jeudi 10 juillet 2008 Statut Membre Dernière intervention 2 septembre 2008
18 juil. 2008 à 09:46
non mais on a compris pas la peine de te répéter, mais si tu ne maitrises pas ce concept de base que sont les écouteurs ca ne servira à rien de te balancer le code déjà tout fait tu n'apprendras rien.
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857 > thomason Messages postés 91 Date d'inscription jeudi 10 juillet 2008 Statut Membre Dernière intervention 2 septembre 2008
18 juil. 2008 à 09:56
Il faut que tu implémentes un écouteur d'action sur ton bouton:

bot.addActionListener( new ActionMouseListener(){
   public void mouseClicked(MouseEvent e){
       resetTextValue();
   }
}
);


Et la méthode 'resetTextValue' qui reset le texte :
public void resetTextValue (){
   text.value = "";
}


Incorporer dans ton code voilà ce que ça donnera :
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 );

bot.addMouseListener( new ActionMouseListener(){
   public void mouseClicked(MouseEvent e){
       resetTextValue();
   }
}
);

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();
}

public void resetTextValue (){
   text.value = "";
}

}


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
0
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.
0
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
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();
}
}
0
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.
0
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
tu peux m'aider?
0

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.
0
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
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.
0
Oui mais si tu mets bot.addActionListener(this); c'est bien sur le bouton que ca agit, non ?
0
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
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 :)
0
Oui je vois ce que tu veux dire, je faisais pas comme maintenant que tu le dis mais comme toi de façon plus ciblée.
0