Nimbus Look And Feel Button textForeground

V

Vorby

Gast
Hallo ihr lieben,

ich vernde das schöne Look And Feel und wollte eigenltich wenn ich den Button drücke die Text Farbe ändern.
Alles Funktioniert nur das nicht.

z.b.
properties.put("Button[Default+Pressed].textForeground", Color.RED);
sollt gehen. tut sich nix.

jemand eine Idee?

2. Frage wäre - ist es denn möglich wenn ich drücke den Text BOLD zu machen? Also anstelle oder gleichzeitig BOLD und COLOR.

Wäre super wenn das jemand wüsst ich hab mich schon tot gego...

Beste Grüße
 

ssoul26

Bekanntes Mitglied
Wieso nimmst du keine ActionListener?
Hier mal auf die Schnelle eine kleine Testklasse mit einem riesigen Button! ;)
Java:
public class test extends JFrame implements ActionListener{
   private JButton btn;
   public test(){
      super();
      init();
      setLocation(200,100);
      setSize(640,480);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setVisible(true);
   }
   private void init(){
      btn= new JButton("Drück mich!");
      btn.addActionListener(this);
      add(btn);
      
   }
   @Override
   public void actionPerformed(ActionEvent e) {
      // TODO Auto-generated method stub
      if(e.getSource()instanceof JButton){
//Wenn Farbe nicht Rot dann mach es Rot und setze auf BOLD
         if(btn.getForeground()!= Color.red){
            btn.setForeground(Color.red);
            btn.setFont(btn.getFont().deriveFont(Font.BOLD));
         }else{
            btn.setForeground(Color.black);
            btn.setFont(btn.getFont().deriveFont(Font.PLAIN));
         }
        

      }
      
   }
}
 

xehpuk

Top Contributor
Wieso nimmst du keine ActionListener?
Ich habe es so verstanden, dass sich die Schrift des Buttons nur ändern soll, während er gedrückt ist.

properties.put("Button[Default+Pressed].textForeground", Color.RED);
Das in den eckigen Klammern soll nur dokumentieren, worauf die Property Einfluss hat. Diese also weglassen:
Java:
properties.put("Button.textForeground", Color.RED);

2. Frage wäre - ist es denn möglich wenn ich drücke den Text BOLD zu machen? Also anstelle oder gleichzeitig BOLD und COLOR.
Einen sauberen Weg über den UIManager kenne ich nicht. Gehen würde es mit einer Unterklasse von JButton oder einer eigenen ButtonFactory mit diesem Code:
Java:
button.addChangeListener(new ChangeListener() {
	@Override
	public void stateChanged(final ChangeEvent e) {
		button.setFont(button.getFont().deriveFont(button.getModel().isPressed() /* oder isArmed() */ ? Font.BOLD : Font.PLAIN));
	}
});
 
V

Vorby

Gast
danke für die eXtrem schnelle Antworten

Ich habe es so verstanden, dass sich die Schrift des Buttons nur ändern soll, während er gedrückt ist.

genau richtig

Das in den eckigen Klammern soll nur dokumentieren, worauf die Property Einfluss hat. Diese also weglassen:
Java:
properties.put("Button.textForeground", Color.RED);
genau das hat gar kein effekt bei mir & ließt sich auch als wäre es dann immer rot?
Nimbus Defaults (The Java™ Tutorials > Creating a GUI With JFC/Swing > Modifying the Look and Feel)
und aus diesem link zu erkennen gibt es auch: Button[Default+Pressed].textForeground
Aber hier kann ich auch eintragen was ich will - nichts zu erkennen.

Einen sauberen Weg über den UIManager kenne ich nicht. Gehen würde es mit einer Unterklasse von JButton oder einer eigenen ButtonFactory mit diesem Code:
Java:
button.addChangeListener(new ChangeListener() {
	@Override
	public void stateChanged(final ChangeEvent e) {
		button.setFont(button.getFont().deriveFont(button.getModel().isPressed() /* oder isArmed() */ ? Font.BOLD : Font.PLAIN));
	}
});
Ok dann ist das nicht mehr von Interresse für mich


Genauso wie ein andere ActionListener uninterressant sind, da ich mit einem Eintrag alle Buttons abfrühstücken möchte.
Oder noch anders gesagt ich habe die Properites alle ausgelagert in einer Datei nach dem Motto:

Button[Default+Focused+MouseOver].backgroundPainter: bild.png

so kann man das ändern ohne jemals an den Code zu müssen.
Deswegn will ich auch den gedrückten Button den Text mit einer anderen Fabre versehen über das LookAndFeel: :)
 
V

Vorby

Gast
Also das hier Funktioniert
properties.put("Button[MouseOver+Pressed].textForeground", Color.RED);
genau dann, wenn nur das angegeben wird.
Jetzt wird beim drücken der Text rot.

Anscheind wird wenn ich alles in meiner Prop. lade irgendwas überschrieben, sieht nach fummeln aus.

Sollte dennoch jemand Tips haben - immer damit hier.

Poste natürlich eine Lösung wenn ich eine habe.
 
V

Vorby

Gast
Also wenn man sowas macht

Java:
properties.put("Button.textForeground", Color.BLUE);
properties.put("Button[MouseOver+Pressed].textForeground", Color.RED);
dann "dominiert" das blau keine Reaktion auf MouseOver+Pressed

nur
Java:
 properties.put("Button[MouseOver+Pressed].textForeground", Color.RED);
dann Funktioniert das. Aber ich kann nicht mehr meine Schriftfarbe wählen bei standard

:-(
 

xehpuk

Top Contributor
Ich verstehe hier auch nichts mehr.
Meine Tests:
  • Code:
    Button.textForeground
    geht (ist immer rot)
  • Code:
    Button[Default].textForeground
    geht nicht
  • Code:
    Button[Pressed].textForeground
    geht (ist im gepressten Zustand rot)
  • Code:
    Button[Default+Pressed].textForeground
    geht nicht
  • Code:
    Button[MouseOver+Pressed].textForeground
    geht halbwegs (bewegt man die Maus im gepressten Zustand raus und wieder rein, wird die Schrift nicht wieder rot; wohl Nimbus-Bug?)

Mit den Paintern konnte ich bisher nichts anfangen. Scheint mir so, als würden diese nie gebraucht werden.
 
V

Vorby

Gast
Ich verstehe hier auch nichts mehr.
Meine Tests:
  • Code:
    Button.textForeground
    geht (ist immer rot)
  • Code:
    Button[Default].textForeground
    geht nicht
  • Code:
    Button[Pressed].textForeground
    geht (ist im gepressten Zustand rot)
  • Code:
    Button[Default+Pressed].textForeground
    geht nicht
  • Code:
    Button[MouseOver+Pressed].textForeground
    geht halbwegs (bewegt man die Maus im gepressten Zustand raus und wieder rein, wird die Schrift nicht wieder rot; wohl Nimbus-Bug?)

Mit den Paintern konnte ich bisher nichts anfangen. Scheint mir so, als würden diese nie gebraucht werden.

genau: bei mir folgendes:
Java:
properties.put("Button[Disabled].textForeground", Color.BLUE);
properties.put("Button.textForeground", Color.RED);

nun wenn nun zwei Button hast, einer davon Disabled sollte die schrift rot blau sein. Ist aber nicht sondern RED weil alle textForeground rot bekommen. Wie kann man also sagen alle Rot außer Disabled buttons haben blau?

Nicht nacheinander versuchen, einzeln funktioniert ja alles
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M JTabbedPane verändern mit Nimbus Look and Feel AWT, Swing, JavaFX & SWT 1
V Nimbus Look and Feel register Region problem AWT, Swing, JavaFX & SWT 5
N Nimbus Look & Feel AWT, Swing, JavaFX & SWT 4
V Swing Nimbus Look And Feel verschiedene Buttons AWT, Swing, JavaFX & SWT 8
B LookAndFeel Cell Renderer für JTable bei Nimbus Look and Feel AWT, Swing, JavaFX & SWT 2
E Look & Feel - Nimbus AWT, Swing, JavaFX & SWT 12
data89 Nimbus Look and Feel als gepackte JAR-Datei AWT, Swing, JavaFX & SWT 3
M Problem Nimbus Look&Feel AWT, Swing, JavaFX & SWT 2
oliver1974 Nimbus Look & Feel und die Ausgaben nach Standardaus. AWT, Swing, JavaFX & SWT 4
R LookAndFeel Wie kann man die Textfarbe der Nimbus ProgressBar nach Füllstand ändern? AWT, Swing, JavaFX & SWT 2
V LookAndFeel JSpinner Hintergrund Farbe mit Nimbus LaF AWT, Swing, JavaFX & SWT 0
H Nimbus ProgressBar Colors AWT, Swing, JavaFX & SWT 9
H Nimbus L&F TitledBorder AWT, Swing, JavaFX & SWT 2
M jTabbedPain und Nimbus AWT, Swing, JavaFX & SWT 4
T Nimbus JButton: Zeilenumbruch korrigieren? AWT, Swing, JavaFX & SWT 9
hdi LookAndFeel Nimbus BUG mit JTabbedPane?! AWT, Swing, JavaFX & SWT 5
Y LookAndFeel Nimbus einschalten geht nicht AWT, Swing, JavaFX & SWT 31
A LookAndFeel Rollover Effekt bei JTabbedPane deaktivieren (Nimbus) AWT, Swing, JavaFX & SWT 8
T Nimbus Überschrift AWT, Swing, JavaFX & SWT 10
P LookAndFeel nimbus JLabel undurchsichtig opaque funktioniert nicht AWT, Swing, JavaFX & SWT 4
R LookAndFeel Nimbus ändert Programmausführung AWT, Swing, JavaFX & SWT 8
Y LookAndFeel JTabbedPane: Tab-Farbe mit Nimbus setzen AWT, Swing, JavaFX & SWT 3
N Swing Nimbus arbeitet nicht korrekt korrekt bei setEnabled() für JMenuItem AWT, Swing, JavaFX & SWT 2
C LookAndFeel Nimbus TabbedPane Backgroundcolor AWT, Swing, JavaFX & SWT 12
S Metal-Buttons so aussehen lassen wie Nimbus Buttons? AWT, Swing, JavaFX & SWT 3
Fu3L Keine Transparenten JTextComponents möglich mit Nimbus L&F? AWT, Swing, JavaFX & SWT 5
S Swing JTable in Nimbus AWT, Swing, JavaFX & SWT 4
O nimbus Abbrechen ok vertauscht AWT, Swing, JavaFX & SWT 2
A Nimbus eigener Painter funzt nicht AWT, Swing, JavaFX & SWT 11
T Swing: TaskPane mit Nimbus LnF? AWT, Swing, JavaFX & SWT 4
Hatsi09 Look and Feel AWT, Swing, JavaFX & SWT 6
MaxG. Swing Java Look and Feel AWT, Swing, JavaFX & SWT 2
Neumi5694 LookAndFeel Look & Feel nicht angezeigter Komponenten ändern AWT, Swing, JavaFX & SWT 6
M JFileChooser Look and Feel AWT, Swing, JavaFX & SWT 2
A Swing JProgressbar im Windows Look & Feel Farbanpassung AWT, Swing, JavaFX & SWT 2
G LookAndFeel Tutorial für Erstellung eines eigenen Look And Feel AWT, Swing, JavaFX & SWT 3
javampir Look&Feel von JMenuItem AWT, Swing, JavaFX & SWT 3
J Eigenes Gui/ Look and Feel AWT, Swing, JavaFX & SWT 14
S Look und Feel ändert sich nicht AWT, Swing, JavaFX & SWT 4
B Eigenen Look&Feel erstellen?! AWT, Swing, JavaFX & SWT 2
T Applet JTattoo Look and Feel AWT, Swing, JavaFX & SWT 5
C Swing JTattoo - Look and Feel für ALLE User AWT, Swing, JavaFX & SWT 5
B Windows Look and Feel AWT, Swing, JavaFX & SWT 2
eLogic Look And Feel - Einstellen AWT, Swing, JavaFX & SWT 3
B Look And Feel ändern (Netbeans) AWT, Swing, JavaFX & SWT 18
K LookAndFeel Look And Feel ändert sich nicht AWT, Swing, JavaFX & SWT 8
Dragonfire Swing UTF-8 BOB Probleme mit Windows Look and Feel AWT, Swing, JavaFX & SWT 4
I LookAndFeel Wie kann ich das Look and Feel "Blue Vista" verwenden? AWT, Swing, JavaFX & SWT 4
trash Look and Feel Probleme AWT, Swing, JavaFX & SWT 10
Developer_X LookAndFeel Eigenes Look And Feel erstellen AWT, Swing, JavaFX & SWT 33
J Auf die im Look and Feel eingestellten Farben zugreifen AWT, Swing, JavaFX & SWT 2
T LookAndFeel Look and Feel Frage AWT, Swing, JavaFX & SWT 2
W Look and Feel für einzelnde JFrames AWT, Swing, JavaFX & SWT 4
S Swing: Look and Feel abändern oder für Teilkomponenten anderes LaF setzen AWT, Swing, JavaFX & SWT 2
B Look and Feel Designer für GUI AWT, Swing, JavaFX & SWT 2
aze JXTaskPane Look and Feel ändern AWT, Swing, JavaFX & SWT 2
S LookAndFeel Look and Feel mit Windows funktioniert nicht AWT, Swing, JavaFX & SWT 8
M JProgressBar Look and Feel AWT, Swing, JavaFX & SWT 5
K Look&Feel von JMenuBar und Subkomponenten anpassen AWT, Swing, JavaFX & SWT 6
G Look And Feel in Eclipse AWT, Swing, JavaFX & SWT 2
J Java Look And Feel- Welche gefallen euch am besten? AWT, Swing, JavaFX & SWT 12
T Look & Feel Skins/Themes AWT, Swing, JavaFX & SWT 9
R JScrollBar mit eigenem look and feel AWT, Swing, JavaFX & SWT 6
P JTable: nicht im gewünschten Look&Feel AWT, Swing, JavaFX & SWT 3
C JTextArea und Look&Feel AWT, Swing, JavaFX & SWT 14
G windows look and feel problem AWT, Swing, JavaFX & SWT 7
M JTable Zeilenhöhe Look and Feel AWT, Swing, JavaFX & SWT 2
H Look & Feel und JSplitPane Problem AWT, Swing, JavaFX & SWT 17
A Was ist Look and Feel und wie wirds bearbeitet AWT, Swing, JavaFX & SWT 7
G bestes Look & Feel ? AWT, Swing, JavaFX & SWT 15
G Look&Feel AWT, Swing, JavaFX & SWT 5
V Swing: System-Look&Feel unter KDE AWT, Swing, JavaFX & SWT 3
F Externes Look & Feel für Swing wie importieren/verwenden AWT, Swing, JavaFX & SWT 3
J Lookand Feel JGoodies <-> MetalLookAndFeel AWT, Swing, JavaFX & SWT 2
P Swing mit substance look/feel fenster repaint AWT, Swing, JavaFX & SWT 7
S Unterschiedliche Optik trotz gleicher Look and Feel Code? AWT, Swing, JavaFX & SWT 11
S Oyoaha Look and Feel AWT, Swing, JavaFX & SWT 4
S LOOK and FEEL fü MAC AWT, Swing, JavaFX & SWT 11
X Metal Look and Feel in schwarz AWT, Swing, JavaFX & SWT 3
B Allgemeine Frage zu Look&Feel AWT, Swing, JavaFX & SWT 2
Bernasconi Look and Feel Problem AWT, Swing, JavaFX & SWT 6
M Look&Feel, JButton ,Opaque AWT, Swing, JavaFX & SWT 2
A JProgressBar: Farbe im Windows Look&Feel ändern. AWT, Swing, JavaFX & SWT 1
F JInternalFrame Look and Feel AWT, Swing, JavaFX & SWT 3
T Look and Feel ändern geht nicht, obwohl es geht. AWT, Swing, JavaFX & SWT 2
N JFileChooser mit WindowsLook&Feel AWT, Swing, JavaFX & SWT 6
O Look And Feel greift nicht im Hauptfenster (JFrame)! AWT, Swing, JavaFX & SWT 11
padde479 Look And Feel zur Laufzeit ändern AWT, Swing, JavaFX & SWT 2
D Aerith Look & Feel AWT, Swing, JavaFX & SWT 3
G Fonts bei Look And Feel AWT, Swing, JavaFX & SWT 3
G JTable wird im Windows Look&Feel nicht gedruckt AWT, Swing, JavaFX & SWT 5
V System Look and Feel, FileChooser, Optionen einer jar-Datei AWT, Swing, JavaFX & SWT 10
V Lock & Feel für Error-Messages AWT, Swing, JavaFX & SWT 6
W Anderes Look And Feel AWT, Swing, JavaFX & SWT 9
Hotkey Freie Icons für Anwendung mit Java Look&Feel AWT, Swing, JavaFX & SWT 4
L Wie look & feel ändern? AWT, Swing, JavaFX & SWT 2
H Look&Feel - Mnemonics - java5 AWT, Swing, JavaFX & SWT 2
G Java 1.5 Look&Feel zur Laufzeit auf 1.4 umstellen möglic AWT, Swing, JavaFX & SWT 2
M Look&Feel - Layout - GUI - Design - SAP LnF :) AWT, Swing, JavaFX & SWT 12
G Fragen zum Ocean Look and Feel AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben