wie kann man aus einem ObjektArray, dessen Inhalt Strings, JLabels, JAreaFields, ints und und und ist, die jeweiligen Inhalte einzelner Elemente auslesen?
Ich bekomme die Klasse und den jeweiligen Namen einzelner Elemente, jedoch kann ich nicht auf den Inhalt der einzelnen Variablen zugreifen.
hier das Beispiel:
[java=42]import java.awt.Component;
import javax.swing.JLabel;
public class Start{
Object [] t = new Object[3];
JLabel test = new JLabel("test");
int i = -20;
test k ;
public Start(){
t[0]=new JLabel("test");
t[1]=i;
t[2]=new test().sammler;
}
public static void main(String [] args){
Start m = new Start();
int i=0;
while(i<m.t.length){
System.out.println(m.t.getClass().getComponentType());
// aber wei bekomme ich den Inahalt ???
i++;
}
}
}
public class test {
public String [] sammler = {"TTT","TT","T"};
public String[] Ausgabe(){
return sammler;
}
}
[/code]
Würde mich freuen wenn mir einer oder andere helfen kann.
Ich würds mit "instanceof" probieren.
So ungefähr:
Java:
package start;importjavax.swing.JLabel;publicclassStart{finalObject[] t =newObject[3];finalJLabel test =newJLabel("test");int i =-20;Test k =null;publicStart(){
t[0]=newJLabel("test");
t[1]=newInteger(i);
t[2]=newTest().sammler;}publicstaticvoidmain(String[] args){finalStart m =newStart();int i =0;while(i < m.t.length){if(m.t[i]instanceofJLabel)System.out.println("Das war ein Label: "+ m.t[i]);elseif(m.t[i]instanceofInteger)System.out.println("Das war ein Int: "+ m.t[i]);elseif(m.t[i]instanceofString[])System.out.println("Da ist Test: "+ m.t[i]);
i++;}}}classTest{publicString[] sammler ={"TTT","TT","T"};publicString[]Ausgabe(){return sammler;}}
Danke dir für deinen Tipp MQue,
das habe ich auch versucht, leider bekomme ich trotzdem die einzelnen Inhalte, wie z. Bsp. die vom String Array in der Klasse Test, nicht raus, oder auch die Beschriftung des JLabels. Am ende interessiert mich der Inhalt der Einzelnen Variablen, also:
Bei JLabel --> die Beschriftung --> "test"
beim String Array --> alle einzelnen Elemente --> "TTT", "TT","T".
eine funktionierende Lösung steht anscheinend da oder von dir zumindest nicht weiter kommentiert, inwiefern es nicht reicht,
stattdessen funktioniert bei dir irgendwas nicht, ohne dass du Code oder Hinweise postest,
was könntest du darauf als Antwort erwarten?
package javaapplication246;importjava.util.Arrays;importjavax.swing.JLabel;publicclassStart{finalObject[] t =newObject[3];finalJLabel test =newJLabel("hallo");int i =-20;Test k =null;publicStart(){
t[0]=newJLabel("testdsgsdfg");
t[1]=newInteger(i);
t[2]=newTest().sammler;}publicstaticvoidmain(String[] args){finalStart m =newStart();int i =0;while(i < m.t.length){if(m.t[i]instanceofJLabel){JLabel l =(JLabel) m.t[i];System.out.println("Das war ein Label: "+ l.getText());}elseif(m.t[i]instanceofInteger){Integer integer =(Integer)m.t[i];System.out.println("Das war ein Int: "+ integer);}elseif(m.t[i]instanceofString[]){String[] s =(String[]) m.t[i];System.out.println("Da ist Test: "+Arrays.toString(s));}
i++;}}}classTest{publicString[] sammler ={"TTT","TT","T"};publicString[]Ausgabe(){return sammler;}}