Как да рисувате върху JLabel?

Искам да използвам 2D Java API, за да рисувам върху JLabel, който вече има изображение върху него, и след това да запазя получената редактирана картина.

Не мога да намеря никакви уроци по тази конкретна тема, някой има ли код или препратки, които показват как да го направя?


person James MV    schedule 11.12.2011    source източник
comment
Чертането в JPanel е подобно на рисуването във всеки JComponent като JPanel. Можете да търсите в този форум много примери, да снимате, много от мен, включително пример 1, пример 2, пример 3   -  person Hovercraft Full Of Eels    schedule 11.12.2011
comment
и пример 4   -  person Hovercraft Full Of Eels    schedule 11.12.2011
comment
Благодаря, ще имам добро четене!   -  person James MV    schedule 11.12.2011
comment
Внедряването на Icon е свързан подход, показан тук и тук.   -  person trashgod    schedule 11.12.2011
comment
Моля, уведомете ме, ако нещо е объркващо или ако все още сте блокирали. Вероятно скоро ще получите добри директни отговори тук.   -  person Hovercraft Full Of Eels    schedule 11.12.2011
comment
@trashgod: страхотни публикации и страхотни предложения. Гласувах за този, който не бях гласувал преди.   -  person Hovercraft Full Of Eels    schedule 11.12.2011


Отговори (2)


Един подход би бил да изобразите съществуващото изображение и чертеж в BufferedImage, както е показано в този пример, който наслагва текст върху лого. След като изображението е готово, използвайте ImageIO.write(), за да го запишете в желания формат.

person trashgod    schedule 11.12.2011

замени метода paintComponent на JLabel. Първо трябва да извика super.paintComponent, така че да получите всичко, което JLabel съдържа, след което да добавите свой собствен код за рисуване след това. Трябва да изглежда донякъде така:

public void paintComponent(Graphics g){
    super.paintComponent(g)
    g.drawWhatever ...
}
person Jens Schauder    schedule 11.12.2011