Wie kann ich per Button-Klick die Hintergrundfarbe einer GUI ändern (Java)?

3 Antworten

 Ich hatte schon einiges probiert, jedoch erkennt Java den Namen der GUI nicht .

Ich denke eher, dass du noch nicht so ganz begriffen hast, wie Java funktioniert. 

 Folgende gehen nicht:

...

Du kannst nicht mehrere Schreibweisen verwenden in der Hoffnung, dass eine dann richtig ist...

Wenn du einen Kollegen von dir rufst, und du probierst 3-4 Namen aus, weil du seinen Namen nicht kennst... kommt das einfach nicht gut an.

.setBackground(Color.yellow);

sieht davon noch am richtigsten aus.

Da der restliche Code für uns Antwortgeber nicht ersichtlich ist, geht leider das Raten los.

Ich gehe mal vom Klassiker aus: deine Klasse erbt von JFrame.

Um auf Methoden von deiner Klasse zuzugreifen, musst du die Instanz ansprechen, also entweder nur der Methoden-Name oder explizite Referenz mittels: this.:

setBackground(Color.yellow);
this.setBackground(Color.yellow);

Nachdem du das ganze über einen ActionListener aufrufen willst, dieser jedoch eine Anonyme innere Klasse ist, ist der Klassen-Name noch voran zu stellen, bedeutet bei dir:

GuiSpielkasino.this.setBackground(Color.yellow);

Was tust du in deinem oberen Code-Abschnitt eigentlich? Ratest du wild umher? Lerne lieber erst die Sprache (sowie ihre Konventionen), wenn du nicht weißt, wie die Syntax für deinen Algorithmus aussehen muss.

Um auf die GUI zugreifen zu können, benötigst du eine Referenz auf eine Instanz von ihr. Wenn der Controller, der den Event-Listener implementiert, diese nicht kennt, musst du sie ihm übergeben. Entweder über seinen Konstruktor, wenn er erstellt wird, oder über eine Setter-Methode. Passe des Weiteren auf, dass der Listener an sein Trigger-Element (Button o.ä.) gehängt wird. Sonst wird er nie ausgeführt.

Die Antwort ist ddoch auch klar, du hast sie dir selbst gegeben:

"... jedoch erkennt Java den Namen der GUI nicht "

Warum kann dir hier keiner sagen -- du zeigst ja nicht, wo du sie Java bekannt machst.