hi leutz
Ich muss ne Klasse mit verschiedenen Parametern aufrufen.
Leider muss ich die Klassen mittels nem String aufrufen.
Ansich nicht so wild, aber mit den Parametern bekomm ich das nicht so hin.
das sind JInternalFrames und ich brauch leider auch die 2 aufrufe getFrameWith() und getFrameHeight()
alles geht, bis auf den letzten aufruf.. d.h. der eigentliche aufruf der Klasse MIT den Parametern
Soviel ich weiss müssen dort hin wo new Object[] steht.. aber leider ist das nicht ganz so einfach..
also hier mal mein code:
aufruf z.B.
callClass("M0100");
weiss jemand wie ich das machen kann???
gruss
MScalli
Ich muss ne Klasse mit verschiedenen Parametern aufrufen.
Leider muss ich die Klassen mittels nem String aufrufen.
Ansich nicht so wild, aber mit den Parametern bekomm ich das nicht so hin.
das sind JInternalFrames und ich brauch leider auch die 2 aufrufe getFrameWith() und getFrameHeight()
alles geht, bis auf den letzten aufruf.. d.h. der eigentliche aufruf der Klasse MIT den Parametern
Soviel ich weiss müssen dort hin wo new Object[] steht.. aber leider ist das nicht ganz so einfach..
also hier mal mein code:
aufruf z.B.
callClass("M0100");
Code:
private void callClass(String klassenname) {
System.out.println(klassenname);
// erst den Packagenamen vor den Klassennamen stellen
String str_klassenname = "Test." + klassenname;
// so heissen die Methoden der Klassen(brauche ich um den ort zu bestimmen an denen die JInternalFrames stehen sollen)
String method_name1 = "getWidthFrame";
String method_name2 = "getHeightFrame";
try {
Class c = Class.forName(str_klassenname);
Object object = c.newInstance();
// hier hole ich height und witdh der ausgesuchten Klasse
Method method1 = object.getClass().getMethod(method_name1, new Class[] {});
Object width_frame = method1.invoke(object, new Object [] {});
Method method2 = object.getClass().getMethod(method_name2, new Class[] {});
Object height_frame = method2.invoke(object, new Object [] {});
// in dieser Klasse ist der Desktop(kann man eigentlich gleich so verwenden!! also ohne eine neue instanz zu bilden)
JDesktopPane _desktop = Auftrag.desktop;
// der Klassenaufruf muss dann ungefähr so aussehen
// new klassenname(klassenname.toString(), Auftrag.desktop, width_frame, height_frame);
// heisst aufruf der Klasse mit den Parametern titel, desktop, breite und höhe des JInternalFrames
} catch (SecurityException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
}
}
weiss jemand wie ich das machen kann???
gruss
MScalli