Ik heb een KeyListener in een Class die Thread extendt zitten.
Deze thread wordt geinstantieerd in een Class2.
Deze Class2 wordt aangeroepen door in ActionEvent methode van een button in Class1.
Nu pakt hij de KeyListener van de thread niet.
Hoe kan dat?
Deze thread wordt geinstantieerd in een Class2.
Deze Class2 wordt aangeroepen door in ActionEvent methode van een button in Class1.
Nu pakt hij de KeyListener van de thread niet.
Hoe kan dat?
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
| import java.lang.Thread;
import java.awt.event.*;
import java.awt.*;
public class tijdThread extends Thread implements KeyListener
{
TypePanel typepanel;
int timeleft;
private char ch;
private String textToType;
private boolean typoMade, notFinished;
private int charpos,charsleft;
private Label typelabel = new Label();
public tijdThread(TypePanel typepanel, int timeleft, String textToType)
{
System.out.println("hij zit in de constructor nu");
this.typepanel=typepanel;
this.timeleft=timeleft;
this.textToType=textToType;
typelabel.setBounds(new Rectangle(36, 153, 544, 30));
typelabel.setFont(new java.awt.Font("Monospaced", 0, 25));
typelabel.setText(textToType);
typepanel.add(typelabel);
typepanel.setEnabled(true);
typelabel.addKeyListener(this);
typelabel.requestFocus();
System.out.println(typelabel.getText());
charsleft=textToType.length();
}
public void keyTyped(KeyEvent ae) {
System.out.println("key getypt");
/* ch = e.getKeyChar();
if (ch!=textToType.charAt(0)) {typoMade=true;}
else {
textToType=textToType.substring(1,textToType.length());
typepanel.updateTypelabel();
}*/
}
public void keyPressed(KeyEvent ae) {
System.out.println("test");
}
public void keyReleased(KeyEvent ae) {
}
void updateTypelabel()
{
charsleft--;
typelabel.requestFocus();
typelabel.setText(textToType.substring(0,charsleft));
if (charsleft==0)
{
}
}
public void run()
{
typelabel.addKeyListener(this);
System.out.println("Bezig met runnen thread");
for (int a=1; a<1000; a++)
{
try {
Thread.sleep(400);
}
catch (InterruptedException exc)
{System.out.println("Sleep Exception");
}
typepanel.trigger();
}
}
} |