K
Katharsis
Gast
Ich bin ziemlicher Anfänger mit Java und habe folgendes Problem:
Ich habe 2 Klassen:
Ein Objekt der ersten (Hauptfenster) erstellt ein Objekt der 2.Klasse: Ein Fenster mit Eingabefeld und Button.
Sobald dieser Button gedrückt wird, soll das Hauptfenster das, was im Eingabefeld steht (und vom Benutzer eingegeben wurde), als String speichern.
Doch wie prüfe ich ab, ob im Eingabefenster der Button gedrückt wurde?
Ein paar Versuche mit "while(){}" sind fehlgeschlagen...
Hauptfensterklasse:
Eingabefensterklasse:
Das Problem ist, dass die while-Schleifen immer weiter laufen und das Eingabefenster, sobald aufgerufen, nicht fokusierbar ist.
Rufe ich das Eingabefenster direkt auf, funktioniert es.
Ich wäre dankbar für jede Art von Vorschlägen...
Ich habe 2 Klassen:
Ein Objekt der ersten (Hauptfenster) erstellt ein Objekt der 2.Klasse: Ein Fenster mit Eingabefeld und Button.
Sobald dieser Button gedrückt wird, soll das Hauptfenster das, was im Eingabefeld steht (und vom Benutzer eingegeben wurde), als String speichern.
Doch wie prüfe ich ab, ob im Eingabefenster der Button gedrückt wurde?
Ein paar Versuche mit "while(){}" sind fehlgeschlagen...
Hauptfensterklasse:
Java:
public class MEIN_FRAME extends Frame
{
MEIN_FRAME frame;
//Hauptfenster
SCORE_WINDOW frame_score;
//Eingabefenster
String scoreleader="anonym";
//String, der die Eingabe aus dem SCORE_WINDOW speichern soll
public MEIN_FRAME()
{
....
}
public void Zudecken_1() //1. Versuch: Den Computer in Schleifen warten lassen, bis die Eingabe erfolgt ist
{
frame_score=new SCORE_WINDOW();
while(frame_score.status=='0')
{
long time=System.currentTimeMillis();
while(System.currentTimeMillis()<time+50)
{
}
}
scoreleader=frame_score.scoreleader;
}
public void Zudecken_2() //2. Versuch: Wie der erste, nur mit nem Haufen Fehlermeldungen
{
while(frame_score.status=='0')
{
try
{
wait(50);
}
catch(IllegalArgumentException e1)
{
System.out.println("warning_exception: IllegalArgumentException");
}
catch(IllegalMonitorStateException e2)
{
System.out.println("warning_exception: IllegalMonitorStateException");
}
catch(InterruptedException e3)
{
System.out.println("warning_exception: InterruptedException");
}
}
scoreleader=frame_score.scoreleader;
}
Eingabefensterklasse:
Java:
public class SCORE_WINDOW extends Frame
{
private Frame frame_score= new Frame();
String scoreleader;
char status= '0';
public SCORE_WINDOW()
{
...
final TextField name= new TextField();
name.setLocation(25,150);
name.setSize(225,30);
name.setText("");
name.setVisible(true);
name.setEnabled(true);
frame_score.add(name);
Button knopf_ok= new Button();
knopf_ok.setLocation(25,200);
knopf_ok.setLabel("Ok");
knopf_ok.setSize(100,40);
knopf_ok.setVisible(true);
knopf_ok.setEnabled(true);
knopf_ok.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
scoreleader=name.getText();
status='1';
}
});
frame_score.add(knopf_ok);
}
}
Das Problem ist, dass die while-Schleifen immer weiter laufen und das Eingabefenster, sobald aufgerufen, nicht fokusierbar ist.
Rufe ich das Eingabefenster direkt auf, funktioniert es.
Ich wäre dankbar für jede Art von Vorschlägen...