Frage zu TextField

Hallo!

Ich habe in einer Anwendung mehrere Textfelder für Benutzereingaben. Kann mir jemand sagen, wie ich die Quelle des ActionEvents feststellen kann? Mit Buttons hat das problemlos funktioniert, aber hier tue ich mich etwas schwer.

Gruß

Michael

Hi Michael,

Ich habe in einer Anwendung mehrere Textfelder für
Benutzereingaben. Kann mir jemand sagen, wie ich die Quelle
des ActionEvents feststellen kann? Mit Buttons hat das
problemlos funktioniert, aber hier tue ich mich etwas schwer.

suchst du das:
http://java.sun.com/j2se/1.5.0/docs/api/java/awt/AWT…

Aber was soll da anders sein als bei Buttons?

Alles Gute wünscht
… Michael

Hallo Michael,

Aber was soll da anders sein als bei Buttons?

Alles Gute wünscht
… Michael

Das dachte ich auch. Bei den Buttons habe ich das folgendermaßen versucht:

public void actionPerformed(ActionEvent event)
 {
 String cmd = event.getActionCommand();

 if (cmd.equals("Bezeichner")) {
 ...do something...
 }
 }

Bei mehreren Buttons konnte ich über cmd.equals(…) den gedrückten Button ermitteln. Mit den Textfeldern habe ich das auf die gleiche Art versucht:

TextField tf = new TextField(„some text“);
tf.addActionListener(this);
add(tf);

Nun wollte ich mit if(cmd.equals…) den Bezeichner des Textfeldes abfragen und anschließend den Inhalt in einer Variablen speichern.

Es hat aber nicht funktioniert. Wie kann ich in actionPerformed() nun herausfinden, welches Textfeld eine Eingabe erfahren hat und dessen Inhalt weiterverarbeiten?

ratlose Grüße

Michael

Hallo Michael,

Das dachte ich auch. Bei den Buttons habe ich das
folgendermaßen versucht:

String cmd = event.getActionCommand();

  1. kannst du die Action setzen.
  2. hatte ich getSource() verlinkt, nicht getActionCommand().

Probiere es damit.

Alles Gute wünscht
… Michael

1 Like

Hallo!

Basierend auf Michael H.s Antwort bzgl. getSource:

TextField tf = new TextField();
tf.setName("TEXT\_1");
tf.addActionListener(new ActionListener() {
 public void actionPerformed(ActionEvent e) {
 System.out.println("I am " + ((TextField) e.getSource()).getName());
 }
});

Evtl. zu beachten:
It is also possible to fire an ActionEvent. If action events are
enabled for the text field, they may be fired by pressing the Return
key.

http://java.sun.com/j2se/1.3/docs/api/java/awt/TextF…

Bei JTextField kann man uebrigens ein actionCommand setzen.

Gruss
Patrick

Vielen Dank euch beiden!
Danke für die Hilfe! Jetzt funktioniert es wunderbar!

Gruß und schönes WE

Michael