Изменить цвет галочки JCheckBox
Как мне изменить или изменить цвет JCheckBox
символ (не свойство текста). Я тестирую UIManager.put("CheckBox.selected", Color.RED)
безуспешно.
Может кто-нибудь помочь?
4 ответа
JCheckBox
использует icon
а также selectedIcon
представлять "выбранные" и "невыбранные" состояния.
Единственное, что вы можете изменить, - это использовать собственную иконку, например...
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);
}
}