JButton soll durch anklicken die Farbe wechseln

Hallo,
könnt Ihr mir bei folgender Sache helfen:

ich habe vier JButtons 2015,2016,2017,2018 und möchte das durch anklicken des jeweiligen Buttons sich die Hintergrundfarbe vom JButton ändert.

Jedoch soll die Farbe vom Button 2015 wieder die alte werden, wenn ich auf 2016 klicke!
Ich weiss das man mit variable.setBackground(Color bg) den Hintergrund des Buttons ändern kann, aber was muss ich machen um das zu erreichen was ich vorhabe?
 
Also ich habe in Netbeans mit JFrame eine komplette GUI erstellt und möchte jetzt gerne das folgende Buttons die Farbe wechseln (siehe Anlage).

Für jeden Button wurde ein Objekt erzeugt und es gibt für jedes Jahr eine Methode die so aufgebaut ist:
private void year_2015ActionPerformed(java.awt.event.ActionEvent evt) {


}
ich weiss wie man durch anklicken die Farbe eines Buttons ändert, aber ich verstehe nicht wie ich es darstellen kann das wenn ich auf 2016 klicke und 2015 wieder grau werden soll. Bitte helf mir
 

Anhänge

  • buttons.PNG
    buttons.PNG
    2,5 KB · Aufrufe: 31

Thallius

Top Contributor
Naja ich würde zunächst die Buttons mal in eine Liste oder ein Array packen. Dann kannst du ganz einfach auf alle Buttons zugreifen. Ansonsten must du tausende von if abfragen machen.
 

KeVoZ_

Aktives Mitglied
Na mit der If-else Abfrage solltest du das doch packen oder?
Klickst du auf diesen Button, so setze den Button so, den so und den anderen so. - Und das ganze für alle Buttons.
Das ganze geht mit einem Array natürlich kompakter.
 

VfL_Freak

Top Contributor
Moin,
Für jeden Button wurde ein Objekt erzeugt und es gibt für jedes Jahr eine Methode die so aufgebaut ist:
private void year_2015ActionPerformed(java.awt.event.ActionEvent evt) {


}
ich weiss wie man durch anklicken die Farbe eines Buttons ändert, aber ich verstehe nicht wie ich es darstellen kann das wenn ich auf 2016 klicke und 2015 wieder grau werden soll
Da steht doch hoffentlich noch mehr in der Methode, oder ?? :confused:
Zudem hoffe ich, dass es dazu auch passende ActionListender gibt ... :eek:

Dann: wenn Du in "year_2016ActionPerformed" die Farbe für den Button 2016 änderst, dann setzt Du sie halt für den Button 2015 zurück ...

Poste mal Deinen gesamten Code ... hier will doch keiner rumraten !

Gruß Klaus
 

Robat

Top Contributor
@VfL_Freak

Zudem hoffe ich, dass es dazu auch passende ActionListender gibt ... :eek:

Die Methode:
private void year_2015ActionPerformed(java.awt.event.ActionEvent ){}
sieht mir sehr nach dem GUI Builder von Netbeans aus. Wenn ich mich recht entsinne, dann erzeugt der Builder im QC einen Listener und ruft in dem Listener eifnach nur die o.g. Methode auf. Somit muss sich der user damit nicht "rumschlagen". D.h. das wird schon alles seinen Rechten weg gehen, solange der TE nicht am Code rumgefummelt hat.

Off-Topic: mMn ist der GUI Builder für den Anfang nicht gut, da man das alles mal selbst programmiert haben muss um zu verstehen was da eig. passiert.

Gruß
Robert
 

Neumi5694

Top Contributor
Der GUI Builder ist schon ok, er erstellt halt je nach Einstellung relativ viele anonyme Klassen und eben für jeden Button eine eigene Mehode anstatt einen Handler für alle Buttons.

Tip an den Thread-Ersteller.
Das Ganze klingt stark nach einer Hausaufgabe, deswegen wird man sich hier hüten, dir vollständigen Code zu liefern. Was du kriegst, sind Tips, wie du deinen Code verbessern kannst. Dazu musst du aber erst mal Code HABEN und keine leeren Methoden.

1. Die Methode zum Ändern des Hintergrunds nennt sich setBackGround.
2. Beispiel für ein Array von Buttons: JButton[] allButtons = new JButton[] {button1, button2, button3}
3. Du sparst dir eine Menge Arbeit, indem du nur EINEN Handler schreibst und den an alle Buttons zuweist (oder von deinen vielen Handlern aus jeweils die gleiche Methode aufrufst). Under der Annahme, dass du mit Java 8 arbeitest, empfehle ich dir einen funktionalen Handler, also:
Methodenname: private void handleButtonAction(ActionEvent evt)
Zuweisung mit: aButton.addActionListener(this::handleButton)
In der Methode holst du dir dann den Button mit ((JButton)evt.getSource())


Dann mach genau das, was du in deinem Text geschrieben hast. Du musst die Worte nur noch in Befehle umwandeln: Setze die Hintergrundfarbe aller Buttons auf "nicht gewählt". Dann setze die Farbe des angeklickten Buttons auf "gewählt".


Für das Ganze gibt es auch noch einen Automatismus, setzt sich zusammen aus setSelected() und ButtonGroup (viel Spaß beim Googeln, lies ein paar Tutorials durch). JToggleButtons haben bereits 2 verschiedene Darstellungen für gewählt und nicht gewählt. Vielleicht kommt dir das entgegen.
Falls du aber mit ToggleButtons arbeiten willst, verwende keinen ActionListener, sondern einen ItemListener.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
SvenPittelkow Programm soll auf JButton warten bis der geklickt wurde AWT, Swing, JavaFX & SWT 1
J jButton soll nach klicken eine Variable um 1 erhöhen AWT, Swing, JavaFX & SWT 2
L Swing JButton soll link öffnen AWT, Swing, JavaFX & SWT 1
N Applet JButton soll html Datei aus einem Ordner öffnen AWT, Swing, JavaFX & SWT 2
Z Bei Klick auf JButton soll ein anderer JButton erscheinen AWT, Swing, JavaFX & SWT 4
D JButton mit Fokus soll auf ENTER reagieren AWT, Swing, JavaFX & SWT 3
G JButton mit importFiles-Funktion auf JDrawPane AWT, Swing, JavaFX & SWT 5
B JButton Search AWT, Swing, JavaFX & SWT 8
B Swing JButton mit KeyListener AWT, Swing, JavaFX & SWT 3
L JButton durch Mausklick auslösen und Enter-Taste AWT, Swing, JavaFX & SWT 2
N Erlennen ob JButton gedrückt ist AWT, Swing, JavaFX & SWT 6
D JButton Form verändern AWT, Swing, JavaFX & SWT 4
R Grafik per JButton laden und austauschen lassen AWT, Swing, JavaFX & SWT 14
Badebay Problem mit JButton AWT, Swing, JavaFX & SWT 2
Z Swing Drag and Drop mit einem JButton AWT, Swing, JavaFX & SWT 1
Z Swing Kann man auf JButton zeichenen AWT, Swing, JavaFX & SWT 3
J JButton Icon hinzufügen AWT, Swing, JavaFX & SWT 5
U Swing JButton mit Icon AWT, Swing, JavaFX & SWT 7
ms_cikar Jbutton erzeugt neue Buttons AWT, Swing, JavaFX & SWT 2
Drachenbauer Swing Wie ändere ich die Farbe der Konturen von jButton und jCombobox? AWT, Swing, JavaFX & SWT 18
Drachenbauer Swing Wie ändere ich die helle geklickt-Farbe von einem JButton? AWT, Swing, JavaFX & SWT 4
A Swing JButton mit Pfeiltasten bewegen AWT, Swing, JavaFX & SWT 6
F Swing Scrollbare Liste von JButton AWT, Swing, JavaFX & SWT 4
Hatsi09 JButton text layout AWT, Swing, JavaFX & SWT 9
J JButton zum ändern Der Schriftart/Schriftgröße AWT, Swing, JavaFX & SWT 2
A Swing JButton aussehen AWT, Swing, JavaFX & SWT 12
Legi Swing JButton Icon verschiebt sich AWT, Swing, JavaFX & SWT 2
T Swing Änderung des ActionListener Events nach Klick auf JButton AWT, Swing, JavaFX & SWT 2
S Swing JButton verschwindet nach Compilieren AWT, Swing, JavaFX & SWT 8
B Swing Posistion von JButton auslesen gibt immer 0 aus AWT, Swing, JavaFX & SWT 1
J Thread kennt JButton nicht. AWT, Swing, JavaFX & SWT 11
G Swing JButton ändert (unerwünscht) Größe bei Ausführung AWT, Swing, JavaFX & SWT 4
MR._FIRE_Flower Variable setzten mit JButton AWT, Swing, JavaFX & SWT 5
S Mit JButton neues Fester öffnen und das alte schließen AWT, Swing, JavaFX & SWT 3
T JButton wird beim vergrößern des Fensters erst sichtbar AWT, Swing, JavaFX & SWT 4
R Swing Verändern der Ausrichtung JButton und neu anzeigen AWT, Swing, JavaFX & SWT 2
G Swing JButton - Keine Klickanimation AWT, Swing, JavaFX & SWT 4
Joker4632 JButton nicht sichtbar, aber funktionsfähig AWT, Swing, JavaFX & SWT 8
B Swing JButton deaktivieren, wenn nicht alle JTextFields ausgefüllt sind. AWT, Swing, JavaFX & SWT 2
D JButton per Tastenkombi auswählen AWT, Swing, JavaFX & SWT 2
K JButton nicht sichtbar machen für User 2 AWT, Swing, JavaFX & SWT 4
K JButton auf anderer Klasse AWT, Swing, JavaFX & SWT 6
T KeyListener funktioniert nicht wenn ich ein JButton hinzufüge AWT, Swing, JavaFX & SWT 1
R Swing ActionListener bei JButton AWT, Swing, JavaFX & SWT 9
B JButton -> Rahmen wegbekommen AWT, Swing, JavaFX & SWT 7
N JButton über benutzerdefinierte paintComponent setzen AWT, Swing, JavaFX & SWT 3
T JButton überlagern sich und werden erst beim Mausscrollen sichtbar AWT, Swing, JavaFX & SWT 2
B JButton erscheint in JFrame, obwohl er diesem nicht zugeordnet wurde! AWT, Swing, JavaFX & SWT 1
M JButton Probleme AWT, Swing, JavaFX & SWT 14
T Klasse über JButton schließen AWT, Swing, JavaFX & SWT 4
M Textfarbe JButton verändern AWT, Swing, JavaFX & SWT 2
N JButton ausblenden AWT, Swing, JavaFX & SWT 2
M Swing jButton Text verschwindet AWT, Swing, JavaFX & SWT 2
C Swing JButton wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
stylegangsta JLabel durch Klick auf JButton einblenden AWT, Swing, JavaFX & SWT 16
stylegangsta Eigene Klasse für JButton aus dem JFrame abrufen AWT, Swing, JavaFX & SWT 29
stylegangsta MouseEvents aus JButton aufrufen AWT, Swing, JavaFX & SWT 3
stylegangsta JButton Transparent anzeigen AWT, Swing, JavaFX & SWT 9
stylegangsta JButton Fehelr javax.swing.ImageIcon.<init>(Unknown Source) AWT, Swing, JavaFX & SWT 24
X Swing JButton's zum JScrollPane hinzufügen geht nicht. Bitte um Hilfe. AWT, Swing, JavaFX & SWT 9
D JButton - Nur Icon anzeigen / transparenter Hintergrund AWT, Swing, JavaFX & SWT 2
S JButton-Label vergrößern AWT, Swing, JavaFX & SWT 2
J Swing Basics - JButton funktioniert nicht. AWT, Swing, JavaFX & SWT 1
L JButton mit ImageIcon/Fehlermeldung AWT, Swing, JavaFX & SWT 1
D jButton Problem, ein Rieser Button bedeckt das ganze frame AWT, Swing, JavaFX & SWT 1
L Array mit JButton, wie rausfinden auf welche JButton geklickt wurde + index des JButtons ausgeben AWT, Swing, JavaFX & SWT 4
K (GUI) JButton Farbe bei druck ändern AWT, Swing, JavaFX & SWT 3
L JButton mit Image AWT, Swing, JavaFX & SWT 5
fLooojava JButton [Focus) AWT, Swing, JavaFX & SWT 4
M JButton - Listener AWT, Swing, JavaFX & SWT 1
D jButton auf von jFrame erzeugtem jDialog AWT, Swing, JavaFX & SWT 16
L JButton flackern - Programm hängt sich auf AWT, Swing, JavaFX & SWT 3
L JButton - Größe anders als erwartet AWT, Swing, JavaFX & SWT 2
1 JButton nach Klick ausblenden AWT, Swing, JavaFX & SWT 6
X Swing 1 JButton bedeckt meine ganze Frame aber Warum? AWT, Swing, JavaFX & SWT 2
S Größe und Farbe vom JButton festlegen AWT, Swing, JavaFX & SWT 2
H Swing JList/JTable mit JButton, JTextField, Image, JComboBox und JLable AWT, Swing, JavaFX & SWT 2
J JButton neu zeichnen lassen AWT, Swing, JavaFX & SWT 9
S JButton u. Label auf paint-Methode AWT, Swing, JavaFX & SWT 1
HoloYoitsu Swing JButton in verschiedenen Winkeln drehen AWT, Swing, JavaFX & SWT 0
J vocab1 = new JButton(""+voc1.get(nr).toString()+""); AWT, Swing, JavaFX & SWT 16
A JButton wird bei ActionListener nicht "angenommen" AWT, Swing, JavaFX & SWT 7
BRoll JButton Text nicht ausblenden ("...") AWT, Swing, JavaFX & SWT 2
I JFrame mit JButton schließen? AWT, Swing, JavaFX & SWT 0
D JList&JButton erst nach Resize des JFRame sichtbar AWT, Swing, JavaFX & SWT 2
J Swing JFrame slideout, wenn JButton gedrückt wurde AWT, Swing, JavaFX & SWT 0
S Swing Rückmeldung für JButton AWT, Swing, JavaFX & SWT 4
R AWT JLabel oder JButton aktualisieren AWT, Swing, JavaFX & SWT 1
L JButton im Frame fest verankern AWT, Swing, JavaFX & SWT 0
M Swing Mix JComboBox - JButton? AWT, Swing, JavaFX & SWT 6
U Event Handling JButton Actionevent: starte Spiel AWT, Swing, JavaFX & SWT 4
E JButton füllt ganzes JPanel auf AWT, Swing, JavaFX & SWT 6
P Verbuggte custom JButton unter Windows AWT, Swing, JavaFX & SWT 9
W Swing JButton lässt sich nicht anzeigen AWT, Swing, JavaFX & SWT 8
Kandum Swing JButton - onclick -> Grafikfehler AWT, Swing, JavaFX & SWT 2
R JButton durch Enter auslösen AWT, Swing, JavaFX & SWT 7
T Swing JButton per Drag&Drop verschieben AWT, Swing, JavaFX & SWT 5
M Problem mit FlowLayout, JLabel und JButton AWT, Swing, JavaFX & SWT 4
M JButton wird von JTree überdeckt AWT, Swing, JavaFX & SWT 4
D Swing JButton.setenabled(true) funktioniert nicht AWT, Swing, JavaFX & SWT 12

Ähnliche Java Themen

Neue Themen


Oben