Methodenaufrufe aus String

Status
Nicht offen für weitere Antworten.

boonkelz

Mitglied
Hallo
Bitte um Hilfe
Ich habe 23 Checkboxen und möchte nicht immer pro Index abfragen, welche Box ich selecte

Habe nun folgendes Array geschrieben und möchte diese Namen als Methodenaufrufe nützen ??
private String[] boxNamenGetter = new String[]{"getBoxBezirk01", "getBoxBezirk02", "getBoxBezirk03", "getBoxBezirk04", "getBoxBezirk05","getBoxBezirk06", "getBoxBezirk07", "getBoxBezirk08", "getBoxBezirk09", "getBoxBezirk10", "getBoxBezirk11", "getBoxBezirk12", "getBoxBezirk13", "getBoxBezirk14", "getBoxBezirk15",
"getBoxBezirk16", "getBoxBezirk17", "getBoxBezirk18", "getBoxBezirk19", "getBoxBezirk20", "getBoxBezirk21", "getBoxBezirk22", "getBoxBezirk23" };

// In indexBezirk steht schon drinnen z.B getBoxBezirk05
String indexBezirk = boxNamenGetter[Integer.parseInt(op.getBezirk().substring(1, 3))-1];


// Nun möchte ich aber statt getBoxBezirk01() --> eben indexBezirk nehmen (ich weiss die Klammern fehlen noch)
getWWAnmeldung().getEditObjekteUndBezirke().getBoxBezirk01().setSelected(true);

Wie kann ich das am Besten durchführen
Vielen Dank im Voraus
Hannes
 
so gehts nicht, zumindest nicht in Java,
aber die Methoden an sich sind auch schon falsch,
wie sehen denn getBoxBezirk01-23 inhaltich aus, passiert da immer das gleiche von vielleicht 23 Variablen abgesehen?
die Variablen müssen in ein Array, die EINE Methode lautet dann
getBoxBezirk(int index)

in dem Array zu den Checkboxen höchstens den Index speichern bzw der kommt wohl aus
> Integer.parseInt(op.getBezirk().substring(1, 3))-1
was man vielleicht auch noch optimieren kann
 
23 checkboxen - das kling schon nach nem ziemlichen overkill...

lieber doch ueber den index gehen bzw mit listener arbeiten ?!
 
nicht ganz gelesen..

in java ist es nicht so ohne weiteres möglich, den inhalt eines strings zu "interpretieren".

Hier kann z.B. die Nutzung einer java-basierten Sprache wie groovy helfen. Diese erzeugt dir normalen java bytecode und hier ist es möglich, strings direkt auszuführen.

überleg dir aber vielleicht vorher, ob du die 23 checkboxen (wow!) nicht geschickter handhaben kannst, wie oben beschrieben.
 
so gehts nicht, zumindest nicht in Java,
aber die Methoden an sich sind auch schon falsch,
wie sehen denn getBoxBezirk01-23 inhaltich aus, passiert da immer das gleiche von vielleicht 23 Variablen abgesehen?
die Variablen müssen in ein Array, die EINE Methode lautet dann
getBoxBezirk(int index)

in dem Array zu den Checkboxen höchstens den Index speichern bzw der kommt wohl aus
> Integer.parseInt(op.getBezirk().substring(1, 3))-1
was man vielleicht auch noch optimieren kann

Hallo
Danke erstamal für die vielen Antworten
Da ich noch Java Anfänger bin, hab ich keine Ahnung wie ich das machen soll:
Ich habe 23 Checkboxen (Leider hat Wien so viele Bezirke ggg) die eben von boxBezirk01 bis boxBezirk23 im Gui so heissen,

Dann wird Datei gelesen in eine Liste und die wird mit for Schleife abgearbeitet und wenn im getter vom Bezirk etwas gefunden wird z.B. 1050 dann soll die Checkbox boxBezirk05 ausgewählt werden !!!

Wie kann ich das machen ????

Danke
Hannes
 
entferne die einzelnen Variablen für die 23 Bezirke und lege ein Array an, ein Checkbox-Array z.B.,
wenn dir Arrays nicht bekannt sind, dann ist das ein Thema für sich,

wenn du mit einem GUI-Builder arbeitest, dem du nicht ins Werk pfuschen möchtest,
ja dann bist du mit umständlichen Code gestraft,

alternativ ginge noch eine Methode
getCheckBox(int index) {
switch(index) {
case 1:
return box1;
case 2:
return box2;
...
}

}
 
Zuletzt bearbeitet von einem Moderator:
entferne die einzelnen Variablen für die 23 Bezirke und lege ein Array an, ein Checkbox-Array z.B.,
wenn dir Arrays nicht bekannt sind, dann ist das ein Thema für sich,

wenn du mit einem GUI-Builder arbeitest, dem du nicht ins Werk pfuschen möchtest,
ja dann bist du mit umständlichen Code gestraft,

alternativ ginge noch eine Methode
getCheckBox(int index) {
switch(index) {
case 1:
return box1;
case 2:
return box2;
...
}

}

Hallo Danke für die Hilfe

Übrigends Hansa soll Meister werden, auch wenn ich Rapid Wien Anhänger bin ggg --> ich hoffe Ihr helft mir trotzdem !!!

Habe nun folgendes getan
protected JCheckBox[] chqBox = new JCheckBox[25];
protected String[] chqBxStr = {"1.", "2.", "3.", "4.", "5.", "6.", "7.", "8.",
"9.", "10.", "11.", "12.", "13.", "14.", "15.", "16.",
"17.", "18.", "19.", "20.", "21.", "22.", "23.", "Mödl.", "Gump."};


werden auch angezeigt im Gui

aber wie kann ich die setzen, wenn ich Wert von Datrei einlese ????
getWWAnmeldung().getEditObjekteUndBezirke().getjBezirke().getChqBox() --> wie kann ich am Index zugreifen und setselected lässt er auch nicht zu !!!!!!
HIlfe
Danke
 
Die könntest statt der JCheckBoxen vielleicht auch eine JList verwenden, in welche alle Bezirke aufgelistet sind, die beim Einlesen der Datei mit CheckBoxen eine selektierte CheckBox hätten.
 
Habe schon die Lösung --> muss natürlich in eine Checkbox Array wieder stellen
geht also so -->
JCheckBox[] bezirke = getWWAnmeldung().getEditObjekteUndBezirke().getjBezirke().getChqBox();
int boxIndex = Integer.parseInt(op.getBezirk().substring(1, 3));
bezirke[boxIndex-1].setSelected(true);


Vielen Dank an Alle, die geholfen haben
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben