DocumentListener auf mehrere Textfelder

C

Camino

Gast
Hallo,

ich bin gerade dabei, mir einen Dialog in meiner Swing-Anwendung zu bauen, der drei Texteingabefelder (JTextField) und eine Ausgabeliste (zur Zeit JList, wird aber evtl. noch zur JTable) beeinhalten. Zum Start des (modalen) Dialogs werden von der Datenbank Daten in eine ArrayList geschrieben, die in der Ausgabeliste angezeigt werden. Mit den 3 Texteingabefeldern soll die Ausgabeliste gefiltert werden, d.h. sofort nach Eingabe eines Buchstabens soll die Liste mit den gefilterten Datensätzen angepasst werden. Ich hab jetzt erst mal auf ein Textfeld einen DocumentListener gelegt und nun eine Klasse MyDocumentListener, die DocumentListener implementiert. Dort sind die Methoden, die auf Änderung im Textfeld reagieren (insert, remove). Mit dem einen Textfeld klappt das mittlerweile auch. Nun möchte ich ja auf die restlichen beiden Textfelder auch den Listener legen. Wie kann ich denn erkennen, von welchem der drei Textfelder nun der Event ausgelöst wurde? Ich bekomme zwar das Dokument ausgegeben als javax.swing.text.PlainDocument@1c0bee6 (was ja eigentlich das Textfeld ist), aber wie kann ich von diesem getDocument den Namen des aufrufenden Textfeldes erkennen?

Als nächstes muss ich dann wohl einen Filter für die Ausgabeliste (also für die ArrayList) schreiben. Aber dazu melde ich mich dann wieder, wenn ich soweit bin...

Viele Grüsse
Camino
 

eRaaaa

Top Contributor
Ich bekomme zwar das Dokument ausgegeben als javax.swing.text.PlainDocument@1c0bee6 (was ja eigentlich das Textfeld ist), aber wie kann ich von diesem getDocument den Namen des aufrufenden Textfeldes erkennen?

So an sich garnicht. Du könntest das Document aber vergleichen, also

getDocument == textfeld1.getDocument() , dann wüsstest du ja dass es vom ersten Textfeld kommen muss.

Oder man kann auch dem Document properties verpassen:

textfeld1.getDocument().putProperty("textfeld", textfeld1);

dann könntest du einfach im Listener

JTextField feld = (JTextField) e.getDocument().getProperty("textfeld"); aufrufen.

Ob das ein schöner Ansatz ist, würde ich selbst gerne von einem Swing-Guru erfahren =)
 
C

Camino

Gast
Also, ich hab jetzt mit

Java:
tfNachname.getDocument().addDocumentListener(new MyDocumentListener());
tfNachname.getDocument().putProperty("textfeldNachname", tfNachname);

dem Textfeld den Listener und die Property verpasst.

Aber wie kann ich nun im Listener (eine eigene Klasse, die DocumentListener implementiert) erkennen, welches Textfeld der Auslöser ist?

Mit
Java:
JTextField feld = (JTextField) e.getDocument().getProperty("textfeldNachname");
System.out.println(feld);
bekomme ich dann zwar das Textfeld als Objekt zurückgeliefert, aber ich will ja in der Funktion im Listener erkennen, welches Textfeld das war.

Viele Grüsse
Camino
 

eRaaaa

Top Contributor
Naja das mit dem Property war nur ein Beispiel du kannst da jedes Objekt angeben. D.h. du könntest als Value halt auch einfach immer einen String mitgeben der dann z.B. den Namen beinhaltet oder was auch immer. Wofür/Wieso brauchst du das denn eig., vllt geht das auch viel einfacher :D
 
C

Camino

Gast
Na ja, wie ich schon geschrieben hatte, sollen die Eingaben in den Textfeldern die Ausgabeliste filtern. Also, wenn ich z.B. in das Textfeld für den Nachnamen ein 'F' eingebe, dann sollen nur noch die Datensätze angezeigt werden, deren Nachname mit dem Buchstaben 'F' anfangen. Das soll dann auch mit den anderen beiden Textfeldern kombinierbar sein. Also, in das Textfeld für die Vornamen dann ein 'A' eingegeben, soll die Ausgabeliste nach allen Nachnamen die mit 'F' anfangen UND deren Vornamen mit 'A' bginnen filtern. Die Daten in der Ausgabeliste kommen aus einer Datenbank und sind in einer ArrayList gespeichert.
 
C

Camino

Gast
OK, jetzt hab ich's kapiert:

Java:
tfNachname.getDocument().putProperty("name", "tfNachname");

Wird im Listener so erkannt:

Java:
Document doc = (Document)e.getDocument();
System.out.println(doc.getProperty("name"));

So kann ich dann erkennen, welches Textfeld der Auslöser war. Danke für die Hilfe...

Camino
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
pkm Frage wegen java.lang.IllegalStateException bei DocumentListener AWT, Swing, JavaFX & SWT 4
TheJavaKid DocumentListener soll Text in JTextField ändern AWT, Swing, JavaFX & SWT 4
Y Swing Documentlistener zusammenfassen AWT, Swing, JavaFX & SWT 10
E Swing JTextField und DocumentListener AWT, Swing, JavaFX & SWT 3
T JTextField mit DocumentListener beobachten AWT, Swing, JavaFX & SWT 18
Y entfernten String einer JTextPane per DocumentListener AWT, Swing, JavaFX & SWT 5
B JTextArea und JScrollPane und DocumentListener AWT, Swing, JavaFX & SWT 2
C Ändern eines JTextFields bei DocumentListener Event AWT, Swing, JavaFX & SWT 2
Redfrettchen JTextArea während einer DocumentListener Notification ändern AWT, Swing, JavaFX & SWT 5
J DocumentListener uebergibt Objekt; wie in JTextfield casten? AWT, Swing, JavaFX & SWT 3
A setActionCommand für DocumentListener AWT, Swing, JavaFX & SWT 4
K JTextField / DocumentListener AWT, Swing, JavaFX & SWT 3
T Swing Mehrere Ausgaben in JTextArea AWT, Swing, JavaFX & SWT 2
H Mehrere Panels auf JFrame AWT, Swing, JavaFX & SWT 8
S Mehrere Tabellen Zellen gleichzeitig färben AWT, Swing, JavaFX & SWT 5
Apfelbaum2005 Swing JFrame mehrere JPanels mit unterschiedlichen Formen hinzufügen AWT, Swing, JavaFX & SWT 1
K JavaFX unterschiedliche (mehrere Fenster) in seperater Main Methode AWT, Swing, JavaFX & SWT 26
I Scene Builder - mehrere Seiten AWT, Swing, JavaFX & SWT 6
P Swing Mehrere JLabels mit ImageIcon in JPanel lesen AWT, Swing, JavaFX & SWT 1
schoel27 Mehrere JButtons sollen das gleiche Event auslösen AWT, Swing, JavaFX & SWT 2
Z GUI Forms - Mehrere Fenster in einem Projekt AWT, Swing, JavaFX & SWT 18
M mehrere jTextField untereinander AWT, Swing, JavaFX & SWT 1
N Bilder auf Button einfügen und mehrmals ändern (ein Button, mehrere ActionListener) AWT, Swing, JavaFX & SWT 2
B Swing Sudoku: Laden / Speichern von Zahlen aus/in mehrere JTextFields aus/in eine(r) Textdatei AWT, Swing, JavaFX & SWT 9
M JavaFX JavaFX in mehrere Controller AWT, Swing, JavaFX & SWT 21
R mehrere buttons mit forschleife kreieren und individuell bearbeiten AWT, Swing, JavaFX & SWT 1
N JavaFX 1 Listener für mehrere ChoiceBoxen AWT, Swing, JavaFX & SWT 3
N Textdatei GUI, Text in Textarea anzeigen mehrere Zeilen AWT, Swing, JavaFX & SWT 1
temi JavaFX Mehrere Views mit Stage.setScene() oder mit Scene.setRoot()? AWT, Swing, JavaFX & SWT 7
P Swing Mehrere JPanels auf ein JFrame hinzufügen? AWT, Swing, JavaFX & SWT 2
T Swing Tetraeder - mehrere Punkte verbinden? - Ansätze gesucht AWT, Swing, JavaFX & SWT 2
K JavaFX in mehrere Controller aufteilen AWT, Swing, JavaFX & SWT 29
K JavaFX in mehrere Controller aufteilen AWT, Swing, JavaFX & SWT 0
stroggi Swing Mehrere transparentes Objekte (Grafiken) über einem Bild (JLabel) darstellen AWT, Swing, JavaFX & SWT 4
K Mehrere Linien zeichnen AWT, Swing, JavaFX & SWT 8
J JavaFX - mehrere Views, Model durchreichen AWT, Swing, JavaFX & SWT 10
it_is_all Swing Mehrere JComboBoxen - wie die versch. Boxen mit ItemStateChange auslesen? AWT, Swing, JavaFX & SWT 3
M Swing Mehrere Textfelder mit ScrollBars - Größe der Felder AWT, Swing, JavaFX & SWT 0
W JavaFX Mehrere Klassen in ein TableView AWT, Swing, JavaFX & SWT 6
F AWT mehrere Panels in einem Frame AWT, Swing, JavaFX & SWT 17
L JavaFX Mehrere JavaFX Szenen mit einem Menü AWT, Swing, JavaFX & SWT 1
D Java FXML mehrere Fenster AWT, Swing, JavaFX & SWT 4
F JavaFX Mehrere Stages "managen" AWT, Swing, JavaFX & SWT 2
r4w Changelistener auf mehrere Textfelder AWT, Swing, JavaFX & SWT 5
H Swing + Paint: Mehrere Objekte zeichnen lassen AWT, Swing, JavaFX & SWT 3
S Swing Mehrere Modal-Dialoge übereinander AWT, Swing, JavaFX & SWT 5
T 2D-Grafik JFreeChart mehrere Y-Achsen AWT, Swing, JavaFX & SWT 2
C JavaFX mehrere Kreise nach Eingabeprozess ausgeben AWT, Swing, JavaFX & SWT 2
Thallius Swing Mehrere tausend "Panels" erstellen AWT, Swing, JavaFX & SWT 3
C Java FX Warnmeldung: Mehrere Fonts gehören derselben Familie und Stil AWT, Swing, JavaFX & SWT 2
J Mehrere JInternalFrame; GetValues AWT, Swing, JavaFX & SWT 1
JG12111989 mehrere Polyline-Objekte zeichnen AWT, Swing, JavaFX & SWT 3
LexeB4F JTable mehrere Zelle selektieren und inhalte Löschen.. Ideen gesucht AWT, Swing, JavaFX & SWT 1
V Tastatur KeyListener für mehrere Buttons AWT, Swing, JavaFX & SWT 1
K JavaFX Mehrere Cell Editors in einem TreeView Item AWT, Swing, JavaFX & SWT 2
KaffeeFan mehrere JTextField durchlaufen AWT, Swing, JavaFX & SWT 4
J Java -8 Action Listener für mehrere Buttons AWT, Swing, JavaFX & SWT 9
T Dynamisch mehrere Checkboxen anlegen AWT, Swing, JavaFX & SWT 2
G JavaFX Menü und mehrere Scenes AWT, Swing, JavaFX & SWT 16
R Swing Mehrere JTextFields mit einem Document Listener AWT, Swing, JavaFX & SWT 2
D Mehrere RadiButtons auswählar AWT, Swing, JavaFX & SWT 3
P Swing JTable mehrere Zeilen markieren AWT, Swing, JavaFX & SWT 1
M Mehrere Jpanel in einem JScrollPane (Layout) AWT, Swing, JavaFX & SWT 2
T JavaFX FXMLController für mehrere FXML? AWT, Swing, JavaFX & SWT 7
G mehrere Action-Abfolgen erfassen AWT, Swing, JavaFX & SWT 6
elischa JFrame über mehrere JPanel und Listener AWT, Swing, JavaFX & SWT 17
X Swing JPanel mehrere Ebenen zeichnen AWT, Swing, JavaFX & SWT 13
J Mehrere Hyperlinks "stilvoll" darstellen. AWT, Swing, JavaFX & SWT 1
G Mehrere Strings um Kreis zeichnen und positionieren AWT, Swing, JavaFX & SWT 0
S JavaFX Mehrere TreeTableView's synchron scrollen AWT, Swing, JavaFX & SWT 0
U Mehrere Oberflächeninstanzen seperat schließen AWT, Swing, JavaFX & SWT 5
J Rahmen um mehrere GUI Einzelteile AWT, Swing, JavaFX & SWT 2
S Layouts, mehrere Buttons nebeneinander AWT, Swing, JavaFX & SWT 2
M Mehrere Fenster innerhalb einer Application AWT, Swing, JavaFX & SWT 3
T Über mehrere Panel zeichnen AWT, Swing, JavaFX & SWT 2
M ActionListener für mehrere Klassen AWT, Swing, JavaFX & SWT 4
T [LWJGL] mehrere Displays? AWT, Swing, JavaFX & SWT 19
SexyPenny90 Mehrere Fenster AWT, Swing, JavaFX & SWT 2
M Handling 1 Fenster mehrere Panels AWT, Swing, JavaFX & SWT 2
Y Mehrere JSlider verlinken AWT, Swing, JavaFX & SWT 6
Java-Insel LayoutManager Ein GridBagLayout-Objekt für mehrere Panels? AWT, Swing, JavaFX & SWT 2
O Swing JLabel mehrere Zeilen AWT, Swing, JavaFX & SWT 2
P mehrere Rectangles per JButton AWT, Swing, JavaFX & SWT 9
B JToolBar dynamisch auf mehrere Zeilen erweitern AWT, Swing, JavaFX & SWT 2
Jats Zeichen auf mehrere JPanels AWT, Swing, JavaFX & SWT 7
G Mehrere Probleme mit Java's GUI AWT, Swing, JavaFX & SWT 6
G Mehrere Layoutprobleme AWT, Swing, JavaFX & SWT 2
Kenan89 JTable mehrere ListSelections AWT, Swing, JavaFX & SWT 2
M TextArea über mehrere Zeilen - wie Zeileanzahl abfragen? AWT, Swing, JavaFX & SWT 5
J Swing JDialog blokiert mehrere JFrames - soll aber nur den aufrufenden blockieren AWT, Swing, JavaFX & SWT 4
A mehrere Zeilen in GUi ausgeben AWT, Swing, JavaFX & SWT 2
N Mehrere Tasks nacheinander ausführen AWT, Swing, JavaFX & SWT 7
C SWT Mehrere Bilder in GUI laden AWT, Swing, JavaFX & SWT 5
propra Mehrere Objekte gleichzeitig verschieben AWT, Swing, JavaFX & SWT 7
M 2D-Grafik Mehrere Linien (nacheinander) übereinander Zeichnen AWT, Swing, JavaFX & SWT 6
M Mehrere JPanel nacheinander?! AWT, Swing, JavaFX & SWT 11
Furtano AWT mehrere Bilder in einen Frame zeichnen + Layout Manager AWT, Swing, JavaFX & SWT 10
K SWT Mehrere Einträge ins Clipboard legen AWT, Swing, JavaFX & SWT 2
C Swing Ein JFrame mehrere Ansichten AWT, Swing, JavaFX & SWT 8
C Swing Mehrere JSlider sollen aufeinander reagieren AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben