Button-Farbe bei Windows

Fishtaco

Grünschnabel
O.k., hier erst mal die hoff. letzte Frage:

Beim Setzen der Button-Farbe:
"This operation is a hint and may be overridden by the platform.
For example, on Windows the background of a Button cannot be changed."

Und hier natürlich das, was kommen muß:
Kann ich die Farbe nicht doch irgendwie setzen? Irgendein nicht
allzu komplizierter Workaround?

Nochmals 1000 Dank,
Jens
 
Moin Jens,

also, hier in meinem Java-Client werden durchaus div. Button eingefärbt!
Code:
JButton button;
...
button = new JButton();
button.setOpaque(true);
...
button.setForeground(table.getSelectionForeground());
button.setBackground(table.getSelectionBackground());
In wieweit das setOpaque() wirklich für das Einfärben notwendig ist, kann ich Dir so aus dem Stand nicht sagen, da ich das Ganze erst vor einigen Monaten übernommen habe und noch kein ausgewiesener Java-Experte bin ;) ... aber mein Vorgänger hatte dazu irgendwie bemerkt, dass es ohne nicht geht!!
Kannst Du ja mal ausprobieren.

Dies sagt hierzu die Klasse JComponent (analog für setForeground):
Code:
void javax.swing.JComponent.setBackground(Color bg)
Sets the background color of this component. 

Siehe auch:
java.awt.Component.getBackground
Parameter:
bg the desired background Color
@beaninfo
preferred: true bound: true attribute: visualUpdate true description: The background color of the component.

Allerdings ist hier bei uns auch aufgefallen, dass nach dem Umstellen der Rechner von "Classic Windows" audf "XP-Style" die Button nicht mehr komplett gefärbt sind, sondern nur noch einen gefärbten Rahmen haben - die eigentliche Fläche ist dann grau ... dies 'Problem' habe ich leider auch noch nicht in den Griff bekommen !

tschüss
Klaus
 
Zuletzt bearbeitet:
@vfl_freak
Ich glaube, Fishtaco meint eher den org.eclipse.swt.widgets.Button...

@Fishtaco
Es ist wohl ein bekannter Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=64957 Du kannst zwar über die setBackground() Methode die Farbe des Buttons setzen, aber es wird von Windows ignoriert.

Als Workaround kann ich vorschlagen, ein Image auf den Button zu setzen, wenn das ausreicht...

Grüße
Vincent
 
Moin Vincent,

ah ok, das war mir neu - aber auch das Neue ist ja manchmal richtig :D

Wahrscheinlich arbeiten wir hier deshalb auch mit dem JBuilder und Swing :p

Gruß
Klaus
 
Morje Leute!

Danke für die Antworten. Hätte vielleicht SWT dazu schreiben
sollen...
Jetzt weiß ich wenigstens, dass es ein offizieller Bug ist : )

@vfl_freak: Ja, inzwischen drängte sich mir auch auf, dass Swing die
bessere Wahl gewesen wäre...

@Vincentius: Dass mit dem Image kam mir auch schon, aber ich kann in meinem
Progi die Button-Beschriftung ändern, und dass dann noch dynamisch in
mein Image zu integrieren, ist mir jetzt echt zuviel Arbeit :-\
Für die eigentlichen Buttons der statischen Oberfläche wäre das natürlich
ein Workaround.

Danke an euch beide und noch einen schönen Tag!
Jens
 
Zurück