Hallo,
ich habe mal wieder ein kleines Problem, bei dem ich nicht so recht weiterkomme. Die Forumsuche hat mir dabei nur bedingt weitergeholfen.
Ich habe eine GUI mit einer JComboBox. In dieser steht eine Anzahl Items:
Dazu habe ich eine JTabbedPane (Die JTabbedPane ist um ein Kreuzchen zum Schließen des aktuellen Reiters erweitert, darum steht überall noch ein "Close"dazu). Wenn ich jetzt auf einen Button neben der Combobox klicke, möchte ich der TabbedPane einen neuen Reiter hinzufügen und darin ein neues JPanel angezeigt bekommen. Das klappt auch wunderbar mit:
Jetzt möchte ich aber, dass das gerade das Panel erzeugt wird, was gerade in der ComboBox ausgewählt ist. Also wenn in der ComboBox "FL33100_27" ausgewählt ist, soll als 2. Argument in der obrigen Methode auch dieses übergeben werden.
Meine Frage ist also, wie kann ich den Objektaufruf
durch einen eigenen ersetzen, der einen zusammengesetzten String mit dem aktuellen Item aus der ComboBox nutzt? Die Klassen FL33100_25Panel(), FL33100_27Panel(),... existieren schon und erben von JPanel.
Bei meiner Suche bin ich bis jetzt auf folgendes gestoßen, was mir aber bis jetzt nicht wirklich zum Erfolg verholfen hat:
Hat jemand eine Idee, wie ich das lösen könnte?
ich habe mal wieder ein kleines Problem, bei dem ich nicht so recht weiterkomme. Die Forumsuche hat mir dabei nur bedingt weitergeholfen.
Ich habe eine GUI mit einer JComboBox. In dieser steht eine Anzahl Items:
Code:
FL33100_25
FL33100_27
FL34200
...
Dazu habe ich eine JTabbedPane (Die JTabbedPane ist um ein Kreuzchen zum Schließen des aktuellen Reiters erweitert, darum steht überall noch ein "Close"dazu). Wenn ich jetzt auf einen Button neben der Combobox klicke, möchte ich der TabbedPane einen neuen Reiter hinzufügen und darin ein neues JPanel angezeigt bekommen. Das klappt auch wunderbar mit:
Java:
closeablePane_.addCloseTab(selectionCombo_.getSelectedItem().toString(), new FL33100_25Panel());
Jetzt möchte ich aber, dass das gerade das Panel erzeugt wird, was gerade in der ComboBox ausgewählt ist. Also wenn in der ComboBox "FL33100_27" ausgewählt ist, soll als 2. Argument in der obrigen Methode auch dieses übergeben werden.
Meine Frage ist also, wie kann ich den Objektaufruf
Java:
new FL33100_25Panel();
durch einen eigenen ersetzen, der einen zusammengesetzten String mit dem aktuellen Item aus der ComboBox nutzt? Die Klassen FL33100_25Panel(), FL33100_27Panel(),... existieren schon und erben von JPanel.
Bei meiner Suche bin ich bis jetzt auf folgendes gestoßen, was mir aber bis jetzt nicht wirklich zum Erfolg verholfen hat:
Java:
String classname = selectionCombo_.getSelectedItem().toString() + "Panel";
try{
Class cl = Class.forName(classname);
Constructor co = cl.getConstructor();
ob = co.newInstance();
}catch(Exception ex){}
closeablePane_.addCloseTab(selectionCombo_.getSelectedItem().toString(), (JPanel)ob);
Hat jemand eine Idee, wie ich das lösen könnte?