Выборочная окраска (для любого компонента) выполняется путем переопределения метода paintComponent(...)
.
Таким образом, вы можете расширить свой JLabel и добавить собственный код:
@Override
protected void paintComponent(Graphics g)
{
super.paintComponent(g); // this will paint the label and its Icon
// add custom code here
}
Прочитайте раздел изучебное пособие по Swing по Custom Painting для получения дополнительной информации и примеров.
Или другой вариант - расширить JPanel
и нарисовать Image
, а затем выполнить пользовательскую покраску. Таким образом, весь код рисования находится в одном методе.
Попробуйте оба подхода, чтобы увидеть, который соответствует вашим точным требованиям.