📜  Java Swing-显示图像:(1)

📅  最后修改于: 2023-12-03 15:31:32.586000             🧑  作者: Mango

Java Swing-显示图像:

在Java Swing中,我们可以很方便地加载并显示图像。下面是几个例子,展示如何使用Swing显示图像。

显示本地图像文件:
import javax.swing.*;
import java.awt.*;

public class DisplayLocalImage extends JPanel {

    private Image image;

    public DisplayLocalImage() {
        loadImage();
    }

    private void loadImage() {
        // 读取本地图像文件
        ImageIcon icon = new ImageIcon("path/to/image.jpg");
        image = icon.getImage();
    }

    @Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        // 在JPanel中显示图像
        g.drawImage(image, 0, 0, this);
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame("Display Local Image");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(new DisplayLocalImage());
        frame.pack();
        frame.setVisible(true);
    }
}
显示网络上的图像:
import javax.swing.*;
import java.awt.*;
import java.io.IOException;
import java.net.URL;

public class DisplayNetworkImage extends JPanel {

    private Image image;

    public DisplayNetworkImage() {
        loadImage();
    }

    private void loadImage() {
        try {
            // 从URL读取图像
            URL imageURL = new URL("http://example.com/image.jpg");
            image = ImageIO.read(imageURL);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    @Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        // 在JPanel中显示图像
        g.drawImage(image, 0, 0, this);
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame("Display Network Image");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(new DisplayNetworkImage());
        frame.pack();
        frame.setVisible(true);
    }
}
显示来自byte数组的图像:
import javax.swing.*;
import java.awt.*;
import java.io.IOException;
import java.net.URL;
import java.util.Base64;

public class DisplayByteArrayImage extends JPanel {

    private Image image;

    public DisplayByteArrayImage() {
        loadImage();
    }

    private void loadImage() {
        try {
            // 解码byte数组
            String base64Image = "base64EncodedImageString";
            byte[] imageBytes = Base64.getDecoder().decode(base64Image);
            // 将byte数组转化为Image对象
            image = Toolkit.getDefaultToolkit().createImage(imageBytes);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    @Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        // 在JPanel中显示图像
        g.drawImage(image, 0, 0, this);
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame("Display Byte Array Image");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(new DisplayByteArrayImage());
        frame.pack();
        frame.setVisible(true);
    }
}

以上是几个使用Swing显示图像的例子。Swing提供了很多方便的方法来加载和处理图像,让我们可以很轻松地将图像展示在我们的应用程序中。