JToggleButton - Hintergrundfarbe beim Drücken festlegen

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hi,

ist es, ohne sich einen eigenen JToggleButton zu bauen, möglich, die Hintergrundfarbe, die ein gedrückter Button haben soll, festzulegen?

Danke schon mal!
 
G

Gast

Gast
Habs gefunden!

UIManager.put ("ToggleButton.select", Color.BLACK);
 
G

Guest

Gast
Tja gleich das nächste Problem:

Wenn ich das systemeigene Look and Feel verwende funktioniert die Methode nicht mehr.
Jetzt versuche ich, diesen einen Wert im sSystemeigenen Look and Feel zu ändern, aber noch ohne Erfolg.

Wie bringe ich die UIDefaults wieder ins Look and Feel?

Code:
					UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
					LookAndFeel laf = UIManager.getLookAndFeel();
					UIDefaults defaults = laf.getDefaults();
					defaults.put ("ToggleButton.select", Color.BLACK);
 
G

Guest

Gast
Hier ein Demoprogramm, was das Problem verdeutlicht:

Mit dem Java Look and Feel funktionierts:
Code:
public class Togglebuttontest extends JFrame{
	public  Togglebuttontest(){
		UIManager.put ("ToggleButton.select", Color.BLACK);

		JToggleButton button = new JToggleButton("Knopf");		
		this.getContentPane().add(button);
		this.pack();
		this.setVisible(true);
	}

	public static void main(String[] args) {
		new Togglebuttontest();
	}
}

Mit dem nativ Look and Feel funktioniert es nicht:
Code:
public class Togglebuttontest extends JFrame{
	public  Togglebuttontest(){
		try {
			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (InstantiationException e) {
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		} catch (UnsupportedLookAndFeelException e) {
			e.printStackTrace();
		}
		UIManager.put ("ToggleButton.select", Color.BLACK);

		JToggleButton button = new JToggleButton("Knopf");		
		this.getContentPane().add(button);
		this.pack();
		this.setVisible(true);
	}

	public static void main(String[] args) {
		new Togglebuttontest();
	}
}

Wie lässt sich das lösen?
 
G

Guest

Gast
Gelöst!

Code:
	class ColoredToggleButton extends JToggleButton implements ItemListener{

		protected Color _activatedColor;

		protected Color _deactivatedColor;

		// Standard JToggleButton with ActionListeners attached
		public ColoredToggleButton() {
			super();
			setSelected(false);
		}

		// Standard JToggleButton with ActionListeners attached
		public ColoredToggleButton(String label) {
			super(label);
			setSelected(false);
		}

		public ColoredToggleButton(Color activatedColor, Color deactivatedColor) {
			super();
			_activatedColor = activatedColor;
			_deactivatedColor = deactivatedColor;
			setSelected(false);
			// Set a new UI because of the toggle button
			setUI(new CustomButtonUI(activatedColor));
			setBackground(deactivatedColor);
			setContentAreaFilled(false);
			//addActionListener(this);
			addItemListener(this);
		}

		public ColoredToggleButton(String label, Color activatedColor,
				Color deactivatedColor) {
			super(label);
			_activatedColor = activatedColor;
			_deactivatedColor = deactivatedColor;
			setSelected(false);
			// Set a new UI because of the toggle button
			setUI(new CustomButtonUI(activatedColor));
			setBackground(deactivatedColor);
			setContentAreaFilled(false);
			//addActionListener(this);
			addItemListener(this);
		}

		public Color getActivatedColor() {
			return _activatedColor;
		}

		public Color getDeactivatedColor() {
			return _deactivatedColor;
		}

		// Overloaded in order to paint the background
		protected void paintComponent(Graphics g) {
			Graphics2D g2 = (Graphics2D) g;
			g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
			int w = getWidth();
			int h = getHeight();
			GradientPaint gradient = new GradientPaint(20, 10, getBackground(), 20, h,getBackground(), true);
			g2.setPaint(gradient);
			g2.fillRoundRect(0, 0, w, h, 10,10);
			super.paintComponent(g);
		}

	
		public void itemStateChanged(ItemEvent arg0) {
			if (!isSelected()){
				setBackground(getDeactivatedColor());
			}
		}

		

	} // of class
	
	class CustomButtonUI extends BasicToggleButtonUI{

		private Color _selectedColor;

		public CustomButtonUI (Color selectedColor){
			_selectedColor = selectedColor;
		}

		public void paintButtonPressed (Graphics g, AbstractButton b){
			if (b.getBackground() != getSelectedColor())
				b.setBackground(getSelectedColor());
		}

		public Color getSelectedColor (){
			return _selectedColor;
		}
	}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C JToggleButton disabled Text Color AWT, Swing, JavaFX & SWT 11
Paul15 JCheckBox und JToggleButton AWT, Swing, JavaFX & SWT 5
P Swing JToggleButton Links- und Rechtsklick AWT, Swing, JavaFX & SWT 4
T Swing JToggleButton Zustand AWT, Swing, JavaFX & SWT 2
E JToggleButton automatisch nach drücken loslassen AWT, Swing, JavaFX & SWT 3
V Swing Custom JToggleButton in JTable - Click-Event geht erst beim zweiten Mal AWT, Swing, JavaFX & SWT 7
kodela Swing JToggleButton und Tastatur AWT, Swing, JavaFX & SWT 2
P Swing JComboBox mit JToggleButton kombinieren AWT, Swing, JavaFX & SWT 4
C ausgewählte JtoggleButton als Variablenwert ausgeben AWT, Swing, JavaFX & SWT 14
B JToggleButton und StyledEditorKit.ItalicAction() AWT, Swing, JavaFX & SWT 2
P JToggleButton AWT, Swing, JavaFX & SWT 6
M Swing Selektion mehrerer JToggleButton's in einer Gruppe AWT, Swing, JavaFX & SWT 5
K JToggleButton deaktivieren (komplettes event nehmen) AWT, Swing, JavaFX & SWT 2
C Swing JToggleButton und Icon AWT, Swing, JavaFX & SWT 2
G JToggleButton pressed geht nicht AWT, Swing, JavaFX & SWT 2
gieser jToggleButton: Text unter Bild AWT, Swing, JavaFX & SWT 2
F JToggleButton in AWT umsetzen (Button soll stecken bleiben) AWT, Swing, JavaFX & SWT 4
G JToggleButton AWT, Swing, JavaFX & SWT 6
G welcher Jtogglebutton geklickt? AWT, Swing, JavaFX & SWT 3
G JToggleButton mit Bild AWT, Swing, JavaFX & SWT 6
O ButtonGroup + JToggleButton &;nbsp] AWT, Swing, JavaFX & SWT 6
S Zweidimensionales Array - JToggleButton AWT, Swing, JavaFX & SWT 3
E JToggleButton Zustandsänderung AWT, Swing, JavaFX & SWT 4
M JToggleButton immer nur einen aktivieren AWT, Swing, JavaFX & SWT 2
T Swing JTable cellRenderer mit jpg Hintergrundfarbe lässt sich nicht ändern. AWT, Swing, JavaFX & SWT 1
E Hintergrundfarbe setzen in JPanel funktioneirt nicht AWT, Swing, JavaFX & SWT 4
E JavaFX SplitMenuButton Hintergrundfarbe AWT, Swing, JavaFX & SWT 1
E Swing Miserable Performance beim Ändern der Hintergrundfarbe von JLabels AWT, Swing, JavaFX & SWT 3
D Hintergrundfarbe AWT, Swing, JavaFX & SWT 6
C JavaFx TabelView - hintergrundfarbe möglich? AWT, Swing, JavaFX & SWT 1
S Swing Probleme mit transparenz der Hintergrundfarbe und JRadioButtons AWT, Swing, JavaFX & SWT 2
M JavaFX MenuItem Hintergrundfarbe in CSS AWT, Swing, JavaFX & SWT 4
A JButtons - es wird beim falschen Button die Hintergrundfarbe angepasst AWT, Swing, JavaFX & SWT 2
C Swing Hintergrundfarbe von Submenüeinträgen setzen AWT, Swing, JavaFX & SWT 2
M JComboBox Hintergrundfarbe des gewählten Items AWT, Swing, JavaFX & SWT 3
S Swing Hintergrundfarbe ändern AWT, Swing, JavaFX & SWT 9
R Swing Hintergrundfarbe der Zelle in einer JTable bei Markierung AWT, Swing, JavaFX & SWT 2
K Hintergrundfarbe des Frames ändern AWT, Swing, JavaFX & SWT 4
M Swing JTree: Wie kann ich die Hintergrundfarbe der selection ändern?!?! AWT, Swing, JavaFX & SWT 7
W Swing Hintergrundfarbe ändern AWT, Swing, JavaFX & SWT 4
S JTable Hintergrundfarbe AWT, Swing, JavaFX & SWT 5
M Hover-Farbe über Hintergrundfarbe legen AWT, Swing, JavaFX & SWT 3
B Hintergrundfarbe der JComboBox AWT, Swing, JavaFX & SWT 3
Shanks Hintergrundfarbe durch Button click ändern ?? AWT, Swing, JavaFX & SWT 6
A Hintergrundfarbe eines Applets ändern AWT, Swing, JavaFX & SWT 2
Psypsy Swing Jpanel Hintergrundfarbe ändern AWT, Swing, JavaFX & SWT 10
E Hintergrundfarbe wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
S Hintergrundfarbe in JToolbar nicht angezeigt AWT, Swing, JavaFX & SWT 2
P Swing Hintergrundfarbe auslesen und wieder setzen AWT, Swing, JavaFX & SWT 4
J Hintergrundfarbe von CheckBoxen in einer JTable AWT, Swing, JavaFX & SWT 4
E Swing JComboBox Hintergrundfarbe AWT, Swing, JavaFX & SWT 6
R Hintergrundfarbe vom Fenster AWT, Swing, JavaFX & SWT 2
M Hintergrundfarbe ändern AWT, Swing, JavaFX & SWT 5
M AWT Hintergrundfarbe zuweisen AWT, Swing, JavaFX & SWT 6
T einzelne Zelle einer JTable auswählen und Hintergrundfarbe ändern AWT, Swing, JavaFX & SWT 2
calzone JTable und Hintergrundfarbe AWT, Swing, JavaFX & SWT 12
G Hintergrundfarbe eines JPanels zurücksetzen AWT, Swing, JavaFX & SWT 12
S Hintergrundfarbe in einer Spalte der JTable verändern AWT, Swing, JavaFX & SWT 3
G JTextArea - Hintergrundfarbe? AWT, Swing, JavaFX & SWT 5
hdi Hintergrundfarbe von Label AWT, Swing, JavaFX & SWT 2
T Warum nehmen diese Labels die Hintergrundfarbe nicht an? AWT, Swing, JavaFX & SWT 6
D Browser -> Hintergrundfarbe AWT, Swing, JavaFX & SWT 11
T jtree Hintergrundfarbe für ganze Zeile AWT, Swing, JavaFX & SWT 2
S Hintergrundfarbe eines JFrames ändern AWT, Swing, JavaFX & SWT 2
C Hintergrundfarbe von einem disabled Button ändern ? AWT, Swing, JavaFX & SWT 7
R JTable Hintergrundfarbe ändern AWT, Swing, JavaFX & SWT 7
foobar Hintergrundfarbe eines JMenus ändern AWT, Swing, JavaFX & SWT 2
O Hintergrundfarbe beim ToolTip AWT, Swing, JavaFX & SWT 5
J [Newbie] Hintergrundfarbe ändern AWT, Swing, JavaFX & SWT 2
J JTabbedPane Hintergrundfarbe Problem AWT, Swing, JavaFX & SWT 8
S Hintergrundfarbe für JFrame AWT, Swing, JavaFX & SWT 6
I Hintergrundfarbe beim JLabel AWT, Swing, JavaFX & SWT 3
G JList: Hintergrundfarbe eines Eintrags AWT, Swing, JavaFX & SWT 5
MartinNeuerlich Kann mir jemand, der einen Mac mit einem m1 oder m2-Chip hat, eine POM geben mit der Javafx-Fullscreen beim Mac mit m-Chip funktioniert? AWT, Swing, JavaFX & SWT 1
berserkerdq2 Wie greife ich auf ein Element zu, welches ich beim Scenebuilder erstellt habe AWT, Swing, JavaFX & SWT 10
H AWT Dialog Größe ändern - Schwarzer Inhalt beim groß ziehen AWT, Swing, JavaFX & SWT 1
L jComboBox Actionlistener wird beim erstmaligen Befüllen getriggert AWT, Swing, JavaFX & SWT 7
B Output GUI funktioniert nur beim ersten Mal richtig. AWT, Swing, JavaFX & SWT 4
A JavaFX exportierte Jar ohne beim starten die Libs hinzufügen? AWT, Swing, JavaFX & SWT 2
TheWhiteShadow JavaFX ListView Problem beim Entfernen von Elementen AWT, Swing, JavaFX & SWT 1
S Fehler beim Öffnen weiterer FXML AWT, Swing, JavaFX & SWT 11
I Probleme beim Drucken auf einen PDF-Drucker AWT, Swing, JavaFX & SWT 8
G Gui updated beim zweiten Aufruf nicht mehr AWT, Swing, JavaFX & SWT 15
K JavaFX Resizing-Problem beim BorderLayout (Center Component) beim Arbeiten mit mehreren FXMLs AWT, Swing, JavaFX & SWT 2
W Nullpointer Exception beim übertragen von Daten von Scene zu Scene AWT, Swing, JavaFX & SWT 6
missy72 JavaFX Wiederholen einer IF-Abfrage beim erneuten Öffnen einer Stage AWT, Swing, JavaFX & SWT 11
D JavaFX Probleme beim nachtäglichen hinzufügen der jfx dependency AWT, Swing, JavaFX & SWT 7
R NullPointerException beim Start des Fensters AWT, Swing, JavaFX & SWT 1
D JavaFX Label flackert beim aktualisieren AWT, Swing, JavaFX & SWT 12
J Kann mir jemand beim MediaPlayer helfen ? AWT, Swing, JavaFX & SWT 2
S JavaFx Zufallsfarbe beim Button-Klick AWT, Swing, JavaFX & SWT 22
L Swing JDialog ton beim klicken ausstellen AWT, Swing, JavaFX & SWT 1
sascha-sphw JavaFX ListCell höhe verändert sich beim ändern der Text-Farbe AWT, Swing, JavaFX & SWT 14
H Beim JFrame erstellen ein anderes schließen AWT, Swing, JavaFX & SWT 0
L Swing JLabel wird beim ändern der Schriftart immer neu gezeichnet. AWT, Swing, JavaFX & SWT 2
M AWT Kann meinen Fehler beim ActionListener nicht finden AWT, Swing, JavaFX & SWT 5
R 2D-Grafik Massive Frame Drops beim Benutzen von AffineTransformOp AWT, Swing, JavaFX & SWT 2
ruutaiokwu Swing windowStateChanged macht exakt das Gegenteil beim Verändern der Fenstergrösse AWT, Swing, JavaFX & SWT 3
J Exception beim JFrame erstellen AWT, Swing, JavaFX & SWT 6
B 2D-Grafik paintcomponent Probleme beim zeichnen AWT, Swing, JavaFX & SWT 10

Ähnliche Java Themen

Neue Themen


Oben