Hallo,
habe folgendes Programm geschrieben und zwei kleine Probleme damit:
1. Führe ich das Programm aus und clicke im Menü auf Beenden startet der gleiche Dialog wie bei dem Button "Daten einlesen"
- Verwende ich die Zeile mit "mIDD_Schliessen.addActionListener(this)" (Zeile 67) besteht das gleiche Problem umgekehrt, sprich bei "Daten einlesen" und Menü "Beenden" passiert nix mehr
2. Wie mach ich es, das nach einer erneuten "Daten einlesen" Aktion, keine Namen mehr in den Feldern stehen. Wenn ich einen Namen einlese und den Vorgang anschließend wiederhole, stehen die Namen aus der vorherigen Eingabe im Textfield. Kann man es machen das die Texfields bei jedem Aufruf automatisch gelöscht/gesäubert werden?
Hat jemand eine Idee zu meinen Problemen?
habe folgendes Programm geschrieben und zwei kleine Probleme damit:
1. Führe ich das Programm aus und clicke im Menü auf Beenden startet der gleiche Dialog wie bei dem Button "Daten einlesen"
- Verwende ich die Zeile mit "mIDD_Schliessen.addActionListener(this)" (Zeile 67) besteht das gleiche Problem umgekehrt, sprich bei "Daten einlesen" und Menü "Beenden" passiert nix mehr
2. Wie mach ich es, das nach einer erneuten "Daten einlesen" Aktion, keine Namen mehr in den Feldern stehen. Wenn ich einen Namen einlese und den Vorgang anschließend wiederhole, stehen die Namen aus der vorherigen Eingabe im Textfield. Kann man es machen das die Texfields bei jedem Aufruf automatisch gelöscht/gesäubert werden?
Hat jemand eine Idee zu meinen Problemen?
Code:
import java.awt.*;
import java.awt.event.*;
class Person {
public String Nachname;
public String Vorname;
}
public class PersonFrame2 extends STDFrame implements ActionListener {
private MenuItem mIDD_Schliessen;
Button button = new Button ("Daten einlesen");
Label anzeige = new Label("");
Person person = new Person();
public PersonFrame2 (String Title) {
super (Title); setSize (600, 400);
add (button, BorderLayout.NORTH);
add (anzeige);
button.addActionListener (this);
setVisible(true);
MenuBar menubar = new MenuBar();
setMenuBar (menubar);
Menu m;
menubar.add (m = new Menu ("Datei"));
m.add (mIDD_Schliessen = new MenuItem ("Beenden"));
mIDD_Schliessen.addActionListener(this);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent event){
System.exit(0);
}
});
setVisible(true);
}
public void actionPerformed(ActionEvent event) {
new PersonDialog (this, person);
anzeige.setText (person.Nachname + " " + person.Vorname);
}
public static void main (String[] args){
new PersonFrame2 ("Personendaten anzeigen");
}
}
class PersonDialog extends Dialog implements ActionListener {
MenuItem mIDD_Schliessen;
Frame parent;
Person person;
Button Ok, Cancel;
TextField Nachname, Vorname;
public PersonDialog (Frame parent, Person person) {
super (parent, "Bitte Personendaten eingeben", true);
this.parent = parent;
this.person = person;
setLayout(new GridLayout(3,2));
add (new Label("Nachname"));
add (Nachname = new TextField (person.Nachname));
add (new Label("Vorname"));
add (Vorname = new TextField (person.Vorname));
add (Ok = new Button("OK"));
add (Cancel = new Button ("Cancel"));
setSize(300,100);//pack();
Ok.addActionListener(this);
Cancel.addActionListener(this);
//mIDD_Schliessen.addActionListener(this);
setVisible(true);
}
public void actionPerformed (ActionEvent event) {
if (event.getSource() == Ok){
person.Nachname = Nachname.getText();
person.Vorname = Vorname.getText();
dispose();
}
else if (event.getSource() == Cancel){
dispose();
}
else if (event.getSource() == mIDD_Schliessen){
dispose();
}
}
}