Изменить цвет галочки JCheckBox

Как мне изменить или изменить цвет JCheckBox символ (не свойство текста). Я тестирую UIManager.put("CheckBox.selected", Color.RED) безуспешно.

Может кто-нибудь помочь?

4 ответа

JCheckBox использует icon а также selectedIcon представлять "выбранные" и "невыбранные" состояния.

Единственное, что вы можете изменить, - это использовать собственную иконку, например...

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();
        }
    }

}

Если вы хотите просто изменить цвет фона JCheckBox вместо этого сначала нужно сделать его непрозрачным

cb.setBackground(Color.RED);
cb.setOpaque(true);

потому что они прозрачны по умолчанию

  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

Можете ли вы проверить с этим кодом.

для изменения флажка внутри цвета вы можете использовать это в основном

      try {
        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    } catch (Exception e) {
        System.out.println("Unable to set LookAndFeel");
    }

флажок и переключатель внутри цвета

Если я хочу, чтобы jcheckbox стал желтым, когда я выбрал, прежде чем выполнять событие, вы должны сначала установить желтый цвет фона, а затем выполнить следующий шаг: создать событие jcheckbox StateChanged: при выборе изменить фон на желтый цвет с помощью jcheckbox.setOpaque(правда); невыбранное изменение обратно на jcheckbox.setOpaque(false);

ниже мой код в netbeans:

   private void jcheckboxStateChanged(javax.swing.event.ChangeEvent evt) {                                   
    if (jcheckbox.isSelected()) {
        jcheckbox.setOpaque(true);
    } else {
       jcheckbox.setOpaque(false);
    }

} 

Другие вопросы по тегам