Какой класс Java позволит мне отображать заполнитель изображения? - PullRequest
3 голосов
/ 14 августа 2011

Я хочу отобразить поля, которые на самом деле являются местозаполнителями изображений в Swing.Они имеют фиксированный размер, и изображение после загрузки в заполнитель будет масштабироваться в соответствии с заполнителем.Я также хотел бы иметь возможность закрасить их.Ничего грандиозного.Простые точки и линии, выполненные с помощью кликов за пределами изображения (скажем, в некоторых JButton), без кистей.

Я изначально думал об использовании JLabel, а затем установил из него setIcon.Но это не будет масштабироваться, не так ли?Кроме того, я не думаю, что это позволило бы мне закрасить их.

Я думал о расширении JComponent, использовании ImageIO.read для получения изображения, а затем отображении его с помощью paintComponent.Но я не уверен, смогу ли я снова закрасить изображение.Кроме того, я нахожу этот компонент графического интерфейса довольно распространенным, что я, возможно, заново изобретаю колесо.

Есть предложения?

1 Ответ

3 голосов
/ 14 августа 2011

Я бы посоветовал:

  • BufferedImage, которое содержит ваше изображение и отредактированные пиксели
  • Компонент, расширяющий JLabel и переопределяющий метод paintComponent. Вы можете передать исходное изображение вначале JLabel или оставить его пустым (тогда вам может потребоваться установить предпочтительный размер).
  • в paintComponent просто закрасьте ваше буферизованное изображение.

Anthony

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...