Ich entwickle eine Java-Desktop-Anwendung. Darin habe ich 4 JButtons
auf einem JPanel
. Jetzt möchte ich, dass jedes Mal, wenn eine Schaltfläche angeklickt wird, die Hintergrundfarbe in eine andere Farbe (Orange) geändert wird, um anzuzeigen, dass sie angeklickt wurde und die Hintergrundfarbe aller anderen drei Schaltflächen auf ihre Standardfarbe zurückgesetzt wurde Hintergrundfarbe).Wie stelle ich eine Hintergrundfarbe eines JButtons in Java ein?
So kann zu einer Zeit nur eine Taste die orange Farbe haben.
Der derzeitige Ansatz, den ich angewendet haben, ist, daß ich den folgenden Code in der Methode der xxxActionPerformed()
JButton button1
button1.setBackground(Color.Orange);
button2.setBackground(Color.Gray);
button3.setBackground(Color.Gray);
button4.setBackground(Color.Gray);
und in ähnlicher Weise für den Rest drei Tasten implementiert haben.
Nun möchte ich eigentlich nicht die Hintergrundfarbe als Grau (für nicht ausgewählte Schaltfläche). Stattdessen möchte ich die Standardhintergrundfarbe, so dass die Hintergrundfarbe sich an das Aussehen und die Oberfläche der GUI gemäß dem Look-and-Feel der Endbenutzerplattform anpasst.
Q1. Wie kann ich die Standardhintergrundfarbe erhalten?
Q2. Ist das der richtige Ansatz, um dies zu tun? Gibt es einen anderen Mechanismus, mit dem ich alle vier Schaltflächen in einer Schaltflächengruppe gruppieren kann, so dass nur einer die angegebene Eigenschaft gleichzeitig haben kann (wie Optionsfelder)?
+1 für JToggleButton. Ist 'null' zuverlässig? – trashgod
+1 für die besten Ansatz vorschlagen (mit JToggleButton). Ich habe nach dieser Art von Ansatz gesucht. Danke –
@trashgod Ich habe es viele Male ohne Probleme benutzt, aber nicht mit JToggleButtons ... sowieso ist es das Aussehen und das Gefühl, es zu ehren oder nicht: - | Das ist ein guter Grund, die Farbe des UIManager zu verwenden, oder die Symbole –