Есть ли способ рисовать на картинке в Java? - PullRequest
0 голосов
/ 10 ноября 2019

Я знаю, что должен быть один, но если я добавляю одну метку (которая должна быть моим фоном), а затем рисую на ней (не на всем пространстве), фон не появляется. Я совершенно уверен, что это потому, что Java полностью перекрасил его стандартным серым, но я не знаю, как сказать Java, чтобы он этого не делал. setOpaque (true и false (то же самое)) только останавливает обновление пикселей, которые я не хочу рисовать снова (после перекраски). Спасибо за помощь

1 Ответ

0 голосов
/ 10 ноября 2019

Выборочная окраска (для любого компонента) выполняется путем переопределения метода 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, а затем выполнить пользовательскую покраску. Таким образом, весь код рисования находится в одном методе.

Попробуйте оба подхода, чтобы увидеть, который соответствует вашим точным требованиям.

...