Bonjour,
Voilà j'ai un petit soucis: je n'arrive pas à faire un .setText("blabla"); d'un JTextField après lui avoir mi un .addActionListener();
Quelqu'un a une idée ?
Bonjour,
Voilà j'ai un petit soucis: je n'arrive pas à faire un .setText("blabla"); d'un JTextField après lui avoir mi un .addActionListener();
Quelqu'un a une idée ?
Un petit bout de code, pour pouvoir voir le contexte ?
Cela me déclenche l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 JTextField txtID = new JTextField(5); txtID.setBounds(110, 32, 180, 23); txtID.setBackground(Color.RED); txtID.getDocument().addDocumentListener(this); txtID.setText("blablabla");
Alors que si txtID.setText("blablabla"); je le mets juste une ligne au dessus, ça marche très bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
En fait mon but est de limiter le nombre de caractères dans mon txtID. Après de multiples recherches sur google, j'ai décidé de faire mon propre algorithme.
Mais voilà, La fameuse ligne ne fonctionne pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 if (txtID.getText().length() > 5) { String ID = ""; for (int i = 0; i < 5; i++) ID += txtID.getText().charAt(i); txtID.setText(ID); }
Je pense que l'erreur doit être dans la méthode "insertUpdate(DocumentEvent)".
Dans ce qui suit "Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException", une des ligne doit indiquer le nom de ton fichier java suivi du numéro de ligne où c'est produit l'erreur, qu'elle est cette ligne ?
Une remarque pour créer un texte de 5 caractères à partir du début d'un texte plus grand, tu peux faire
Code : Sélectionner tout - Visualiser dans une fenêtre à part txtID.setText( txtID.getText().substring(0, 5) );
Je me suis trompé de message d'erreur dsl
Voilà, c'est le bon cette fois
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 init: deps-jar: compile: Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: Attempt to mutate in notification at javax.swing.text.AbstractDocument.writeLock(AbstractDocument.java:1343) at javax.swing.text.AbstractDocument.replace(AbstractDocument.java:662) at javax.swing.text.JTextComponent.setText(JTextComponent.java:1441) at videotheque.frmInfos.TextChanged(frmInfos.java:962) at videotheque.frmInfos.insertUpdate(frmInfos.java:928) at javax.swing.text.AbstractDocument.fireInsertUpdate(AbstractDocument.java:184) at javax.swing.text.AbstractDocument.handleInsertString(AbstractDocument.java:754) at javax.swing.text.AbstractDocument.insertString(AbstractDocument.java:711) at javax.swing.text.PlainDocument.insertString(PlainDocument.java:114) at javax.swing.text.AbstractDocument.replace(AbstractDocument.java:673) at javax.swing.text.JTextComponent.replaceSelection(JTextComponent.java:1099) at apple.laf.CUIAquaLookAndFeel$KeyTypedAction.actionPerformed(CUIAquaLookAndFeel.java:1082) at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1576) at javax.swing.JComponent.processKeyBinding(JComponent.java:2772) at javax.swing.JComponent.processKeyBindings(JComponent.java:2807) at javax.swing.JComponent.processKeyEvent(JComponent.java:2735) at java.awt.Component.processEvent(Component.java:5379) at java.awt.Container.processEvent(Container.java:2010) at java.awt.Component.dispatchEventImpl(Component.java:4068) at java.awt.Container.dispatchEventImpl(Container.java:2068) at java.awt.Component.dispatchEvent(Component.java:3903) at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1826) at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:681) at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:938) at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:810) at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:645) at java.awt.Component.dispatchEventImpl(Component.java:3941) at java.awt.Container.dispatchEventImpl(Container.java:2068) at java.awt.Window.dispatchEventImpl(Window.java:1791) at java.awt.Component.dispatchEvent(Component.java:3903) at java.awt.EventQueue.dispatchEvent(EventQueue.java:463) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:176) at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
le code se situe dans frmInfos.java (qui est une JFrame), et la ligne 962 est celle ou se situe txtID.setText("blabla");
L'erreur indique que le contenu du JTextField n'est pas modifiable pendant le traitement d'un événement de modification.
Utilise plutôt un FocusListener pour modifier le JTextField en fin de saisie ou l'événement de fermeture de la fenêtre qui le contient.
Partager