sichtbarkeit von checkboxen

liquid08

Mitglied
hey jungs,
hab folgendes problem in der MVC-architektur und komm nicht weiter:

in der klasse view habe ich einen button und mehrere checkboxen. der button soll nun alle checkboxen gleichzeitig aktivieren. habe also alle buttons und checkboxen einem actionlistener zugefügt, welcher von der klasse controller implementiert wird (controller importiert awt.*). wenn ich nun in der methode actionperformed der klasse controller eine if-schleife einbau, die mithilfe der methode checkbox1.isselected (true) die checkbox1 aktivieren solll, bekomm ich die fehlermeldung in eclipse, dass er eben jene checkbox nicht kennt (checkbox1 cannot be resolved). ich weiss nicht, wie ich der klasse controller klarmachen soll, dass die checkbox der klasse view gemeint ist..
ich hoffe mein problem ist verständlich und jemand kann mir helfen :)
 

Michael...

Top Contributor
checkbox1.isselected (true) die checkbox1 aktivieren soll
Meinst sicher setSelected(true) ;-)

Zunächst würde ich mir die Frage stellen: Ist das Setzen einzelner oder aller Checkboxen für Controller oder Model interessant?
Nein: dann kann man den ActionListener für den Button innerhalb der Klasse View implementieren, die kennt ja vermutlich alle CheckBoxen
Ja: dann verpasst man der Klasse View eine Methode ala selectAllCheckBoxes(), die man vom Controller aus aufrufen kann und die alle Checks setzt.
 

Marco13

Top Contributor
In verschiedensten Threads habe ich schon Sinn und Unsinn von Controllern in so einer Form in Frage gestellt (den Unsinn eher weniger :D ).

Es gäbe prinzipiell mehrere Möglichkeiten. Die (IMHO) "schlechteste" wäre, get-Methoden für die CheckBoxes zu erstellen:
Java:
class Controller implements ActionListener
{
    public void actionPerformed(ActionEvent e)
    {
        if (e.getSource() == view.getCheckBoxA()) { ... }
        if (e.getSource() == view.getCheckBoxB()) { ... }
    }
}



Etwas sinnvoller könnte sein, dem Controller spezielle Methoden für jede CheckBox zu geben, und die mit anonymen Listenern aufzurufen:
Java:
class Controller
{
    void clickedCheckBoxA() { ... }
    void clickedCheckBoxB() { ... }
}

class View
{
    checkBoxA.addActionListener(... actionPerformed(...) { controller.clickedCheckBoxA(); } }
    checkBoxB.addActionListener(... actionPerformed(...) { controller.clickedCheckBoxB(); } }
}


Oder man spart sichsogar das, und macht das, was man in diesen if-Blöcken machen würde, direkt in der actionPerformed eines (anonymen) Listeners, der direkt an die jeweilige CheckBox gehängt wird...

Java:
class View
{
    void init()
    {
        checkBoxA.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                macheA();
            }
        });

        checkBoxB.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                macheB();
            }
        });

Das letzte ist insbesondere dann sinnvoll, wenn in den Methoden ("macheA" ...) nicht viel gemacht wird. Wenn dort also wirklich nur sowas stehen würde wie
Code:
model.setSometingEnabled(true);
dann würde es sich IMHO nicht lohnen, das (wie im zweiten Ansatz) einmal quer durch den Controller zu schleifen. Wenn der Controller aber noch irgendwelche "umfangreicheren" Aufgaben erledigen muss, wäre das zweite wohl besser.


Was davon tatsächlich am besten ist (oder ob man was GANZ anderes machen sollte), hängt vom konkreten Fall ab, aber ... zumindest 3 Ideen hast du ja jetzt ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Sichtbarkeit protected: Attribute trotzdem aufrufbar. Java Basics - Anfänger-Themen 4
A OOP Komposition per Package-Sichtbarkeit Java Basics - Anfänger-Themen 2
melaniemueller Datenkapselung Sichtbarkeit public Java Basics - Anfänger-Themen 4
C Sichtbarkeit in Pakten Java Basics - Anfänger-Themen 2
Y JFrame sichtbarkeit Java Basics - Anfänger-Themen 4
Y Panels sichtbarkeit Java Basics - Anfänger-Themen 3
J Sichtbarkeit und Zugriff Java Basics - Anfänger-Themen 9
A Sichtbarkeit in Methoden/Listen Java Basics - Anfänger-Themen 3
W Sichtbarkeit vom Variablen, Klassen usw. Java Basics - Anfänger-Themen 3
M Sichtbarkeit - Modifier Java Basics - Anfänger-Themen 13
P Klasse mit eingeschränkter Sichtbarkeit Java Basics - Anfänger-Themen 3
J Sichtbarkeit Variable in Schleife Java Basics - Anfänger-Themen 5
C OOP Aufruf von Methoden höherer Sichtbarkeit Java Basics - Anfänger-Themen 10
S Sichtbarkeit Problem Java Basics - Anfänger-Themen 10
J Sichtbarkeit von Objecten in JSP's Java Basics - Anfänger-Themen 7
C OOP Vererbung und Sichtbarkeit Java Basics - Anfänger-Themen 14
B Konstruktoren Sichtbarkeit Java Basics - Anfänger-Themen 2
M Sichtbarkeit von Methoden Java Basics - Anfänger-Themen 7
A Allgemeine Frage zur Sichtbarkeit "private" Java Basics - Anfänger-Themen 5
C Überdecken von Attributen und Sichtbarkeit von Variablen Java Basics - Anfänger-Themen 8
H2SO3- sichtbarkeit con classen und functionen Java Basics - Anfänger-Themen 8
M Vererbung und Sichtbarkeit von Methoden Java Basics - Anfänger-Themen 7
R Sichtbarkeit von Methoden Java Basics - Anfänger-Themen 14
G konstanten leicht benutzen? (sichtbarkeit) Java Basics - Anfänger-Themen 17
G Deklaration und Sichtbarkeit von Variablen Java Basics - Anfänger-Themen 2
H statische methoden und sichtbarkeit Java Basics - Anfänger-Themen 13
B Sichtbarkeit von Variablen Java Basics - Anfänger-Themen 2
F Sichtbarkeit von Buttons un Frame Java Basics - Anfänger-Themen 7
M Sichtbarkeit von private Java Basics - Anfänger-Themen 2
G Sichtbarkeit von Variablen Java Basics - Anfänger-Themen 4
J protected und Standard Sichtbarkeit Java Basics - Anfänger-Themen 2
P Sichtbarkeit Java Basics - Anfänger-Themen 5
R Sichtbarkeit bei Vererbung Java Basics - Anfänger-Themen 2
K Sichtbarkeit von Komponenten prüfen Java Basics - Anfänger-Themen 5
E Checkboxen abfragen Java Basics - Anfänger-Themen 10
O Checkboxen de-/select all Java Basics - Anfänger-Themen 4
D GUI Checkboxen in allen Klassen abfragen? Java Basics - Anfänger-Themen 5
J checkBoxen Panels Java Basics - Anfänger-Themen 12
J Checkboxen umbenennen Java Basics - Anfänger-Themen 3
A Checkboxen in Schleife erstellt -> wie 'ansprechen' ? Java Basics - Anfänger-Themen 3
philipp mehrere checkboxen machen Java Basics - Anfänger-Themen 4
M Checkboxen? Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben