Добавление нескольких изображений друг на друга с помощью прозрачности - PullRequest
0 голосов
/ 04 мая 2018

Можно ли добавить несколько изображений к одному JPanel и использовать канал прозрачности Image сверху, чтобы увидеть базовый Image?

1 Ответ

0 голосов
/ 04 мая 2018

Можно, но проще, если вы создадите собственную версию JPanel, расширяющую класс JPanel. Создайте подкласс JPanel и переопределите метод рисования. В методе paint просто нарисуйте одно изображение поверх другого.

public class MiPanel extends JPanel {
  List<Image> images;

  ...

  void addIMage( Image im) {
    images.add( im)
  }

  @Override
  public void paint( Graphics g) {
    Graphics2D g2d = (Graphics2D)g;

    ...
    for ( Image im :images) {
      g2d.drawImage( im, 0,0, null);
    }
    ...
  }

Создайте List для хранения изображений и способ добавления изображений в список. Затем, в методе paint, нарисуйте все изображения. Конечно, если изображения имеют прозрачность, вы сможете увидеть «под» изображения. Если вы создаете изображения на лету, не забудьте использовать Color с альфа-каналом. Если вы загружаете изображения из файлов, я рекомендую вам использовать PNG.

...