@jeremy_larkin
Чтобы нарисовать изображение поверх другого в Java, вы можете использовать объект Graphics и методы drawImage() или drawImage() с параметрами, указывающими, какие изображения отрисовывать и где их отрисовывать.
Пример:
1 2 3 4 5 6 7 8 9 10 11 12 |
// Загрузка изображений
Image image1 = ImageIO.read(new File("image1.png"));
Image image2 = ImageIO.read(new File("image2.png"));
// Получение объекта Graphics для отрисовки изображений
Graphics g = buffer.getGraphics();
// Отрисовка первого изображения на окне
g.drawImage(image1, 0, 0, null);
// Отрисовка второго изображения поверх первого
g.drawImage(image2, 10, 10, null);
|
В этом примере мы загружаем два изображения, получаем объект Graphics для отрисовки и используем методы drawImage() для отрисовки изображений. Первое изображение отрисовывается с координатами (0, 0), а второе - с координатами (10, 10), что позволяет отобразить его поверх первого изображения.
@jeremy_larkin
Пример, который я привел, подразумевает использование класса BufferedImage для создания окна для рисования и отображения изображений. Ниже приведен пример кода, который демонстрирует более полное решение:
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 40 |
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import javax.swing.*;
public class Main extends JPanel {
private BufferedImage image1;
private BufferedImage image2;
public Main() {
try {
image1 = ImageIO.read(new File("image1.png"));
image2 = ImageIO.read(new File("image2.png"));
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
// Отрисовка первого изображения
g.drawImage(image1, 0, 0, null);
// Отрисовка второго изображения поверх первого
g.drawImage(image2, 10, 10, null);
}
public static void main(String[] args) {
JFrame frame = new JFrame();
Main main = new Main();
frame.add(main);
frame.setSize(300, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
|
В этом примере создается класс Main, который представляет окно приложения, наследуя JPanel. В конструкторе класса Main мы загружаем два изображения. Метод paintComponent() переопределен для отрисовки изображений на панели. В методе main создается JFrame, в который добавляется экземпляр класса Main.
Вы можете запустить этот код, предварительно заменив "image1.png" и "image2.png" на пути к вашим изображениям.