Component Array ==> JTextField

maTuchen

Grünschnabel
Hallöchen,

ich bins mal wieder mit einer Frage ! Ich bin dabei eine GUI Oberfläche (hier explizit JPanel gemeint) dynamisch auszulesen.

Code:
Component compedit[] = editPanel.getComponents();
		int index = Integer.parseInt(editPanel.getName());
	System.out.println("-> EDITPANEL COMPS: " + editPanel.getComponentCount());
		for(int i = 0; i < editPanel.getComponentCount(); i++){
			String name = compedit[i].getName();
			if(name == "xT"){ // x koordinate
				// hier will ich auf das textfeld zu greifen 
			}
			
			if(name == "yT"){ // y koordinate
				
			}
		}

Ich habe ein Kommentar an der Stelle gemacht, wo ich auf ein TextField zu greifen möchte, allerdings habe ich nur ein Component in der Hand und dieser kennt leider nicht die Methode "getText()", daher weiß ich nicht wie ich auf diesen Inhalt zu greifen kann ... kennt jmd. eine Lösung ?
 
Hallo,

du musst casten. etwa so:
Java:
...
if (compedit[i] instanceof JTextField){
   JTextField tf = (JTextField)compedit[i];
   //Und nun weiter mit tf
}
...

MIt instanceof machst du einen sicheren Cast. D.h. er prüft erst, ob es sich bei compedit[i] wirklich um eine Instanz von der Klasse JTextField handelt. Und erst dann soll ein Cast erfolgen. Machst du die Prüfung nicht wird es, insofern es sich nicht um eine Instanz der Klasse JTextField handelt, eine ClassCastException hageln.
 
Zuletzt bearbeitet:
Zurück