Bonjour
Voici mon problème: lorsque j'attend une entrée utilisateur sur System.in, l'edt est totalement bloqué.
Je ne peux donc pas avoir d'interface graphique et prendre en même temps des inputs utilisateur sur System.in?
Voici le code qui montre le problème (exécutable):
Impossible d'écrire du texte dans le textfield sans devoir faire une entrée utilisateur.
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 import java.awt.Dimension; import java.io.IOException; import javax.swing.JFrame; import javax.swing.JTextField; public class Bug { JFrame frame; JTextField txtIn; Bug(){ frame = new JFrame("bug frame"); txtIn = new JTextField(); frame.add(txtIn); frame.setSize(new Dimension(50,50)); frame.setVisible(true); } public static void main(String[] args) { //je lance l'ui Bug b = new Bug(); //je lance la lecture try { while(true){ // System.in.read(); } } catch (IOException e) { e.printStackTrace(); } } }
J'ai essayé beaucoup de possibilité à base de thread, sans résultats sur le fond du problème.
ps: je sais que l'ui doit être fait avec invokeLater(), là c'est un exemple simple dans lequel invokeLater n'est pas la solution.
Le premier qui me montre comment faire marcher les deux, je lui dit un grand merci.
Partager