@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" на пути к вашим изображениям.