Недоступный компонент
Пишу простой компонент пользовательского интерфейса. Завожу объект типа JComponent и переопределяю метод paintComponent. Компонент умеет отображать картинку, заданную в качестве параметра и xитрым способом дорисовывать что-то поверx картинки и рядом с ней. Здесь, для примера, пусть она перечеркивает картинку красным. Компонент реагирует на события мыши и т.д. Иногда требуется показать, что наша "кнопка" недоступна пользователю, disabled, серенькая. Как сделать так, чтобы наша "кнопка" становилась серенькой? Про узоры, которые я дорисовываю более менее понятно: я могу поставить условие, какой цвет выбирать. А что делать с картинкой? Как её отобразить?
Код примерно такой:
import javax.swing.*;
import java.awt.*;
public class Main {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200, 200);
JComponent c = new JComponent() {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
ImageIcon ia = new ImageIcon("icon.png");
ia.paintIcon(null, g, 0, 0);
g.setColor(isEnabled()? Color.RED : Color.GRAY);
g.drawLine(0, 0, ia.getIconWidth(), ia.getIconHeight());
}
};
c.setEnabled(false);
frame.add(c);
frame.setVisible(true);
}
}