[JAVA / AWT / Buttons] Buttons dynamisch ansprechen ?

NudelMC

Well-known member
ID: 46722
L
16 Juni 2006
178
5
Angenommen ich habe eine Funktion welche als Übergabeparameter 1-9 erwartet.

Anhand des Parameters soll ein Button umbenannt werden

button1.setLabel("HIER");

Allerdings soll jetzt nicht immer button1 umgelabelt werden, sondern immer der Button der übergeben wurde.

Wenn 4 übergeben würde soll

button4.setLabel("HIER");

Gelabelt werden.

Klar könnt ich da jetzt mit einer if oder einer case Struktur dran gehen, aber es gibt doch auch sicher ein weg das dynamisch zu machen.

button + zahl + .setlaben(„hier“); z.b. ^^

Wäre dankbar für Hilfe
Gruß
Nudel
 
Kann du die Buttons nicht in einem Array speichern und dann immer über den Index adressieren?
 
Allein auis sicherheitstechnischen Erwägungen ist es sinnvoller, das über eine switch/case-Struktur oder ein Array zu lösen. D.h . ich kann jeden Designer verstehen, der einen direkten Zugriff über Objektnamen _nicht_ zulässt (ich weiß, dass es bei gewissen Programmierumgebungen trotzdem möglich ist).
 
kannste mir zeigen wie das mit nem array geht ?
Kann mir das nicht vorstelllen ( ganz neu bei java)


mit switch case möcht ich ehrlich gesagt net, da mir da der verwaltungs aufwand zu groß wird
 
PHP:
    final private int anzahl = 10;
    private JButton[] buttons;

    public Buttons() {
        //Initialisierung
        buttons = new JButton[anzahl];
        for (int i = 0; i < anzahl; i++) {
            buttons[i] = new JButton();
        }
    }

    public boolean setLabelToButton(String label, int i) {
        if (i < 1 || i > anzahl)
            return false;
        //da setLabel deprecated ist...
        buttons[i - 1] = new JButton(label);
        return true;
    }
 
wenn du die anzahl deiner buttons immer kennst is array ne gute sachen. wenn net solltest du dir vielleicht auch nochmal ArrayList ansehn.
 
Wie wäre es, wenn du statt einer Zahl einfach den Button übergibst?