gestion d'événements, utilisation de JTextField
Bonjour,
dans une classe ou je gère les événements, je voudrais modifier un objet JLabel : j'aimerais changer la valeur de la chaîne de ce JLabel losrque je clique sur un bouton. Mais quand je clique sur ce bouton gérer avec MouseListener (j'ai aussi essyé avec ActionListener) je reçois un message incompréhensible dans l'invité de commande et bien sûr cela ne marche pas ...
je vous donne la nature du message :
Citation:
Exception in thread "AWI-EventQueue-0" java.lang.NullPointerException
ce message est ensuite suivi de plein de fichiers avec un "at" devant. Ils commencent tous par "java.awt" sauf un : "javax.swing".
Je vous donne le code de mon gestionnaire d'événements :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
class CActionCalculer implements MouseListener {
public void mouseClicked(MouseEvent e) {
int portance = Integer.parseInt(texte5.getText());
textefin.setText(String.valueOf(portance));
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
} |
je ne vois pas d'où viens le problème étant donné que j'utilise quasiment un exemple du livre sur lequel j'apprends java. Je précise : textefin est un Jlabel, et texte5 un JTextField.
Si quelqu'un connaît ce genre d'erreur, merci d'avance.
Cordialement,
Coralex
ca ne marche pas plus avec ActionListener
Bonjour,
et merci pour vos conseils mais le problème ne vient pas de mon gestionnaire d'événement visiblement (puisque j'ai un nouvelle fois essyé avec actionListener et cela ne marqhe pas plus). Je vous donne donc le code en entier, je précise : dans mon gestionnaire d'événements, aucune des deux actions demandées ne marche et elles renvoient la même erreur. En réalité c'est avc la première que mon programme va fonctionner, après avoir fait des comparaisons entre les différentes valeurs des JTextField, et en appellant ces valeurs comme dans la première ligne de la deuxième action demandée.
Je vous remercie d'avance.
Coralex
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
| import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class CPremierTPE extends JFrame {
JTextField texte3,texte4,texte5,texte6;
JLabel textefin;
public static void main(String[] args) {
CPremierTPE choix = new CPremierTPE("TPE avion");
choix.pack();
choix.setSize(800,150);
choix.setVisible(true);
}
class CActionCalculer implements ActionListener {
public void actionPerformed(ActionEvent e) {
textefin.setText("salut");
//ou ceci :
int portance = Integer.parseInt(texte5.getText());
textefin.setText(String.valueOf(portance));
}
}
// Le constructeur
CPremierTPE(String titre) {
super(titre);
//*******************************************
// Forcer le thème natif
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch(Exception ex) {
System.err.println("Erreur de Look&Feel\n");
}
setLayout(new GridLayout(4,1));
JPanel cellule1 = new JPanel();
JPanel cellule2 = new JPanel();
JLabel texte1 = new JLabel("Ce prgramme détermine le mouvement futur de l'avion, en fonction des paramètres entrés. ");
texte1.setFont(new Font("Monospaced", Font.PLAIN,12));
cellule1.add(texte1);
JLabel texte2 = new JLabel("Entrez dans les cases des forces, les différentes intensités, en Newton, après avoir effacé leur nom.");
texte2.setFont(new Font("Monospaced", Font.PLAIN,12));
cellule2.add(texte2);
add(cellule1);
add(cellule2);
JPanel champs = new JPanel();
champs.setLayout(new GridLayout(1,4));
JTextField texte3 = new JTextField(10);
texte3.setText("Poussée");
champs.add(texte3);
JTextField texte4 = new JTextField(10);
texte4.setText("Traînée");
champs.add(texte4);
JTextField texte5 = new JTextField(10);
texte5.setText("Portance");
champs.add(texte5);
JTextField texte6 = new JTextField(10);
texte6.setText("Poids");
champs.add(texte6);
add(champs);
JPanel resultat = new JPanel();
resultat.setLayout(new GridLayout(1,2));
JButton calculer = new JButton("Calculer");
resultat.add(calculer);
JLabel textefin = new JLabel(texte5.getText());
textefin.setFont(new Font("Monospaced", Font.PLAIN,12));
resultat.add(textefin);
add(resultat);
calculer.addActionListener(new CActionCalculer());
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
} |