Hallo,
dies ist mein erster Foreneintrag und ich freue mich, falls jemand die Muße besitzt einem Anfänger auf die Sprünge zu helfen. Aber nun zum Problem:
Ich habe ein kleines Programm geschrieben, das die Anschläge der Enter-Taste in einer bestimmten Zeit registrieren soll. Alles funktioniert gut. Es wird ein Frame erzeugt, in dem sich drei Labels befinden. Eines, in dem die Zeit von 15 bis 0 Sekunden herunterläut, eines für die Anzahl der Anschläge und eines für die Anschläge pro Sekunde. Das ganze sieht so aus:
Wenn ich nun versuche, das Fenster TastenTest mit Hilfe eines Buttons aus einem anderem Fenster erzeugen zu lassen, wird zwar das TastenTest-Fenster angezeigt und die Zeit heruntergezählt, aber der KeyListener funktioniert nicht mehr. Jedes Mal werden 0 Anschläge ausgegeben.
Den folgenden Code habe ich dazu in der anderen Klasse verwendet. (Die Mainmethode wurde natürlich vorher rauskommentiert)
Naja, das ist mein Problem. Ich hoffe, ich habe nicht zu viel Code reingepostet und man kann meine Spaghettiprogrammierung noch entziffern.
... und wie oben schon gesagt: Ich freue mich über jede Hilfe
dies ist mein erster Foreneintrag und ich freue mich, falls jemand die Muße besitzt einem Anfänger auf die Sprünge zu helfen. Aber nun zum Problem:
Ich habe ein kleines Programm geschrieben, das die Anschläge der Enter-Taste in einer bestimmten Zeit registrieren soll. Alles funktioniert gut. Es wird ein Frame erzeugt, in dem sich drei Labels befinden. Eines, in dem die Zeit von 15 bis 0 Sekunden herunterläut, eines für die Anzahl der Anschläge und eines für die Anschläge pro Sekunde. Das ganze sieht so aus:
Code:
....
public class TastenTest extends java.awt.Frame{
public static void main(String[] args)
{
TastenTest mainframe = new TastenTest();
}
long t1, t2;
int i = 17, zaehler = 0;
float aps;
public Label sekunden, anzeige, ergebnis;
boolean released = true;
public TastenTest(){
setVisible(true);
setTitle(" TEST ");
Color ColorBack = new java.awt.Color(200,200,200,200);
setLayout(null);
setBackground(ColorBack);
setLocation(200,50);
setSize(250,140);
setResizable(false);
....
addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent event)
{
if (event.getKeyCode() == KeyEvent.VK_ENTER) {
if(i <= 15 && i != 0 && released){
zaehler++;
released = false;
}
}
}
public void keyReleased(KeyEvent event)
{
if (event.getKeyCode() == KeyEvent.VK_ENTER) {
released = true;
}
}
}
);
while (i>0) {
t2 = System.currentTimeMillis()+1000;
while (true) {
t1 = System.currentTimeMillis();
if (t2 < t1) {
--i;
sekunden.setText(""+i);
if(i == 16)
sekunden.setText("los!");
break;
}
}
}
anzeige.setText(""+zaehler);
aps = (float) Math.round((float) zaehler/15*100)/100;
ergebnis.setText(""+aps);
}
....
Wenn ich nun versuche, das Fenster TastenTest mit Hilfe eines Buttons aus einem anderem Fenster erzeugen zu lassen, wird zwar das TastenTest-Fenster angezeigt und die Zeit heruntergezählt, aber der KeyListener funktioniert nicht mehr. Jedes Mal werden 0 Anschläge ausgegeben.
Den folgenden Code habe ich dazu in der anderen Klasse verwendet. (Die Mainmethode wurde natürlich vorher rauskommentiert)
Code:
ActionListener listen_los = new ActionListener() {
public void actionPerformed(ActionEvent event) {
TastenTest test = new TastenTest();
}
};
Naja, das ist mein Problem. Ich hoffe, ich habe nicht zu viel Code reingepostet und man kann meine Spaghettiprogrammierung noch entziffern.
... und wie oben schon gesagt: Ich freue mich über jede Hilfe