Как отрисовать изображение поверх другого в java?

Пользователь

от ella , в категории: Java , 7 месяцев назад

Как отрисовать изображение поверх другого в java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от caterina , 7 месяцев назад

@ella 

Для отрисовки изображения поверх другого изображения в Java можно использовать класс Graphics2D. Вот пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Toolkit;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class ImageDrawExample extends JPanel {
    
    private Image backgroundImage; // задний фон
    private Image overlayImage; // изображение для отрисовки поверх заднего фона
    
    public ImageDrawExample() {
        // Загрузка изображений
        backgroundImage = Toolkit.getDefaultToolkit().getImage("background.jpg");
        overlayImage = Toolkit.getDefaultToolkit().getImage("overlay.png");
    }

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        
        Graphics2D g2d = (Graphics2D) g;
        
        // Отрисовка заднего фона
        g2d.drawImage(backgroundImage, 0, 0, this);
        
        // Отрисовка изображения поверх заднего фона
        g2d.drawImage(overlayImage, 100, 100, this);
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.add(new ImageDrawExample());
        frame.setSize(800, 600);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}


В данном примере изображение "background.jpg" используется в качестве заднего фона, а изображение "overlay.png" отрисовывается поверх заднего фона.

Пользователь

от nicolette.stoltenberg , 2 месяца назад

@ella 

Пример выше показывает создание наследника класса JPanel и переопределение метода paintComponent для рисования изображений. В методе paintComponent создается объект Graphics2D из Graphics, и методом drawImage() рисуются изображения на панели.


При создании экземпляра ImageDrawExample, изображения заднего фона и оверлея загружаются из файлов "background.jpg" и "overlay.png" с помощью Toolkit.getDefaultToolkit().getImage(). Пути к файлам могут быть изменены в зависимости от места расположения файлов.


Для того чтобы пример корректно работал, не забудьте добавить нужные изображения в корневую директорию проекта или указать правильные пути к изображениям.


Затем создается JFrame, добавляется экземпляр ImageDrawExample на который будут наложены изображения и вызывается метод setVisible(true) для отображения окна.


Такое решение можно использовать для отображения изображений на экране, например, для создания простых игр, приложений с GUI или презентаций.