Java 基础教程

Java 面向对象

Java 高级教程

Java 笔记

Java FAQ

java jpanel添加图片


在 Java 的 Swing 框架中,要在 JPanel 中添加图片有几种不同的方式。以下是三种常见的实现方式,包括每种方式的步骤流程和示例代码。

注意:以下示例中使用的图片文件应位于项目的资源文件夹内。

方式一:使用 ImageIcon 和 JLabel

这是一种简单的方式,使用 ImageIcon 来加载图片,然后将其添加到 JLabel 上,最后将 JLabel 添加到 JPanel

步骤流程:

  1. 创建一个 JPanel
  2. 使用 ImageIcon 加载图片。
  3. 创建一个 JLabel,并将加载的图片设置为其图标。
  4. JLabel 添加到创建的 JPanel 中。

示例代码:

import javax.swing.*;
import java.awt.*;

public class ImagePanelExample {

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> {
            JFrame frame = new JFrame("Image Panel Example");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setSize(400, 300);

            JPanel panel = new JPanel();
            ImageIcon imageIcon = new ImageIcon("src/main/resources/image.jpg");
            JLabel label = new JLabel(imageIcon);
            panel.add(label);

            frame.add(panel);
            frame.setVisible(true);
        });
    }
}

方式二:继承 JPanel 并重写 paintComponent 方法

这种方式允许你创建一个继承自 JPanel 的自定义面板,然后在 paintComponent 方法中绘制图片。

步骤流程:

  1. 创建一个继承自 JPanel 的自定义面板类。
  2. 在自定义面板的 paintComponent 方法中使用 Graphics 对象绘制图片。

示例代码:

import javax.swing.*;
import java.awt.*;

public class CustomImagePanel extends JPanel {

    private Image image;

    public CustomImagePanel(String imagePath) {
        image = new ImageIcon(imagePath).getImage();
    }

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.drawImage(image, 0, 0, getWidth(), getHeight(), this);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> {
            JFrame frame = new JFrame("Custom Image Panel Example");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setSize(400, 300);

            CustomImagePanel panel = new CustomImagePanel("src/main/resources/image.jpg");
            frame.add(panel);
            frame.setVisible(true);
        });
    }
}

方式三:使用第三方库 Piccolo2D

Piccolo2D 是一个强大的 2D 图形库,可以轻松地在 JPanel 中显示图片,同时支持缩放和平移操作。

依赖坐标(Maven):

<dependency>
    <groupId>edu.umd.cs.piccolo</groupId>
    <artifactId>piccolo2d-core</artifactId>
    <version>3.0</version>
</dependency>

依赖坐标(Gradle):

implementation 'edu.umd.cs.piccolo:piccolo2d-core:3.0'

步骤流程:

  1. 创建一个 PCanvas 对象,它是 Piccolo2D 的画布。
  2. 创建一个 PImage 对象,加载图片。
  3. PImage 添加到 PCanvas 中。

示例代码:

import edu.umd.cs.piccolo.PCanvas;
import edu.umd.cs.piccolo.nodes.PImage;

import javax.swing.*;
import java.awt.*;

public class PiccoloImagePanelExample {

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> {
            JFrame frame = new JFrame("Piccolo Image Panel Example");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setSize(400, 300);

            PCanvas canvas = new PCanvas();
            PImage image = PImage.fromURL("file:src/main/resources/image.jpg");
            canvas.getLayer().addChild(image);

            frame.add(canvas);
            frame.setVisible(true);
        });
    }
}

以上是三种在 Java Swing 中将图片添加到 JPanel 的方式,每种方式都有其适用场景和特点。你可以根据你的需求选择最合适的方式。

在Java中给图片添加文字通常涉及到以下几种实现方式:使用Java原生库、使用第三方库ApachePDFBox、使用第三方库JavaImag ...
在Java的Swing编程中,如果你想要刷新`JPanel`上的内容,有几种不同的实现方式。示例代码:###方法二:使用revalidate ...
在Java中生成图片有多种方式,下面我将介绍几种常见的实现方式,包括使用Java标准库以及一些第三方库。示例代码:###使用第三方库:Apa ...
假设我们要操作的数组是一个整型数组`int[]arr`,要添加的元素是整数`newElement`。Maven依赖:Gradle依赖:### ...
###方式一:使用Java原生库ImageIO步骤流程:1.示例代码:依赖坐标(Maven):依赖坐标(Gradle):###方式三:使用第 ...