Настройка "Коробки" в JCheckBox - PullRequest
0 голосов
/ 30 декабря 2018

Я бы хотел изменить внешний вид Box внутри JCheckBox .Я попытался создать "CustomIcon" класс , который реализует "Icon" , и, используя методы "JCheckBox.setDisabledIcon ()" и "JCHeckBox.setDisabledSelectedIcon ()" установка значка в моем классе, но я этого не сделалне получить никакого результата.Это было лучшее решение, которое я нашел после попытки @ Override "BasicCheckBoxUI.paint ()" метод, и он тоже не работал.

CustomIcon класс:

{
import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
import javax.swing.Icon;

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Ionut Cicio
 */
public class CustomizedIcon implements Icon{
    public int width;
    public int height;

    public Color color;

    public CustomizedIcon(int width, int height, Color color){
        this.width = width;
        this.height = height;
        this.color = color;
    }

    @Override
    public void paintIcon(Component c, Graphics g, int x, int y){
        g.setColor(this.color);
        g.fillRect(x, y, width, height);

        g.drawRect(x, y, width, height);
    } 

    @Override
    public int getIconWidth(){
        return this.width;
    }

    @Override
    public int getIconHeight(){
        return this.height;
    }
}

Использование :

    rememberPasswordCheckBox.setDisabledSelectedIcon(new CustomizedIcon(10, 10, new Color(100, 255, 100)));
    rememberPasswordCheckBox.setDisabledIcon(new CustomizedIcon(10, 10, new Color(255, 100, 100)));

Не могли бы вы помочь мне найти ошибку или объяснить, как это сделать?

1 Ответ

0 голосов
/ 30 декабря 2018

Я изменил setDisabledSelectedIcon на setSelectedIcon и setDisabledIcon на setIcon, и он работал нормально - даже для отключенного флажка.

...