DocumentEvent source?

werkuh

Mitglied
Moin, ich hab da mal ne kleine Frage. Ich schreibe grad einen Wizard um Daten zu erfragen, dabei wird, abhängig von der vorherigen Abfrage, eine dynamische Anzahl von JTextFields anonym angelegt und mit einem DocumentListener versehen. Hier setzt mein logisches Problem ein: ich kann den einzelnen Textfeldern zwar via .getDocument().addProperty() eine "owner"-flag verpassen, allerdings sind die Flags beim auslesen alle identisch, also hab ich den Ansatz wieder verworfen. Da ich die Daten aus den Feldern aber doch ganz gerne noch weiter auswerten würde, ist nun die Frage... wie komme ich an den Auslöser des Document-Events?

so sieht es momentan zur Verdeutlichung aus:

Java:
JPanel p = new JPanel(new FlowLayout(FlowLayout.LEFT));
		Map<Integer, Object> textFields = new HashMap<Integer, Object>();

		for (int i = 1; i <= (int) map.get("noZiele"); i++) {
			p.add(new JLabel("Ziel " + i + ":"));
			textFields.put(i, new JTextField(20));
			p.add((JTextField)textFields.get(i - 1));
		}

		DocumentListener dl = new DocumentListener() {

			@Override
			public void removeUpdate(DocumentEvent e) {
		
			}

			@Override
			public void insertUpdate(DocumentEvent e) {
				
			}

			@Override
			public void changedUpdate(DocumentEvent e) {
				// TODO Auto-generated method stub

			}
		};	
		
		Set keys = textFields.keySet();
		Iterator it = keys.iterator();
		while (it.hasNext()) {
			Object key = it.next();
			JTextField field = (JTextField)textFields.get(key);
			field.getDocument().addDocumentListener(dl);
		}
 

Ebenius

Top Contributor
Am einfachsten ist sicher eine DocumentListener-Instanz pro Textfeld. Dem kannst Du ja dann alle notwendigen Informationen mitgeben.

Ebenius
 

bERt0r

Top Contributor
Ich merke noch kurz an: Anstatt einer Map<Integer,Object> mit Zahlen von 1-20 zu verwenden kannst du auch gleich eine ArrayList nehmen.
 

Ähnliche Java Themen


Oben