2016-04-27 29 views
1

Wie ändere oder ändere ich die Farbe des JCheckBox Symbols (nicht die Texteigenschaft). Ich teste UIManager.put("CheckBox.selected", Color.RED) ohne Erfolg.Change JCheckBox 'Ticked' Farbe

Kann jemand helfen?

+0

Probieren Sie '" CheckBox.select "', obwohl es von einigen UI-Delegaten ignoriert wird. – trashgod

+1

'JCheckBox' verwendet ein' Symbol' für die ausgewählten und nicht ausgewählten Symbole (beide müssen gesetzt sein), so dass die einzige Möglichkeit zum Ändern der Farbe wäre, das Symbol zu ändern – MadProgrammer

Antwort

0
UIManager.put("CheckBox.focus",Color.RED); //on focus 
    UIManager.put("CheckBox.select",Color.RED) //on select 

    checkBox1.setForeground(Color.RED); //you can call this in the combobox action listner 
    checkbox1.setBackground(Color.Blue); //changing the background color 

können Sie mit diesem Code überprüfen.

+0

Gleiches Verhalten. Ich verwende Java 8.60 unter Win7. – BicaBicudo

+0

hat einige Änderungen an der Antwort vorgenommen, die Sie jetzt versuchen können – Priyamal

3

JCheckBox verwendet die icon und selectedIcon, um die Zustände "ausgewählt" und "nicht ausgewählt" darzustellen.

Die wollen nur können Sie Ihr eigenes Symbol verwenden, zum Beispiel ...

CustomCheckBox

public class TestPane extends JPanel { 

    public TestPane() { 
     try { 
      JCheckBox cb = new JCheckBox(); 
      cb.setSelectedIcon(new ImageIcon(ImageIO.read(...))); 
      cb.setIcon(new ImageIcon(ImageIO.read(...))); 
      cb.setBackground(Color.RED); 
      cb.setOpaque(true); 
      add(cb); 
     } catch (IOException ex) { 
      ex.printStackTrace(); 
     } 
    } 

} 

diejenigen ändern, wenn Sie möchten, wollen einfach nur die Farbe des JCheckBox stattdessen Hintergrund ändern, Sie werden es undurchsichtig erste

cb.setBackground(Color.RED); 
cb.setOpaque(true); 
machen müssen

weil sie standardmäßig

transparent sind
+0

Danke - Opaque war was ich brauchte. Ich werde auch für die anderen Suchenden berichten, dass es keine Marge, etc. auf Check-Box-Labels gibt. Also ist etwas mehr Finesse erforderlich als nur ein Farbwechsel. _Nett_ – will