21xrx.com
2025-06-29 06:42:37 Sunday
登录
文章检索 我的文章 写文章
使用Java添加图片到GUI应用程序中
2023-06-12 20:13:05 深夜i     14     0
Java GUI应用程序 JLabel JPanel Graphics2D 图片

在GUI应用程序中添加图片可以让窗口变得更加丰富和有趣。Java提供了多种方法来添加和显示图片。本文将介绍如何在Java的GUI应用程序中添加图片,并提供一些简单的代码示例。

一、使用JLabel添加图片

JLabel是Java自带的一个标签组件,可以用来显示文本和图片。下面是一个示例代码,演示如何在JFrame中添加一个JLabel并显示一张图片:

import javax.swing.*;
import java.awt.*;
public class AddImageToGUI {
  public static void main(String[] args) {
    JFrame frame = new JFrame("Add Image to GUI");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(400,400);
    // 创建一个标签组件,并添加到窗口中
    ImageIcon imageIcon = new ImageIcon("picture.jpg");
    JLabel imageLabel = new JLabel(imageIcon);
    frame.getContentPane().add(imageLabel);
    frame.setVisible(true);
  }
}

二、使用JPanel添加图片

JPanel是一个轻量级容器,它可以用来保存和组织其他组件。通过在JPanel中添加一个JLabel组件,可以显示一张图片。下面是一个示例代码:

import javax.swing.*;
import java.awt.*;
public class AddImageToGUI {
  public static void main(String[] args) {
    JFrame frame = new JFrame("Add Image to GUI");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(400,400);
    // 创建一个面板组件,并添加到窗口中
    JPanel panel = new JPanel();
    panel.setBackground(Color.WHITE);
    // 创建一个标签组件,并添加到面板中
    ImageIcon imageIcon = new ImageIcon("picture.jpg");
    JLabel imageLabel = new JLabel(imageIcon);
    panel.add(imageLabel);
    frame.getContentPane().add(panel);
    frame.setVisible(true);
  }
}

三、使用Graphics2D绘制图片

除了使用组件来显示图片,还可以使用Graphics2D类来绘制图片。下面是一个示例代码:

import javax.swing.*;
import java.awt.*;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class AddImageToGUI {
  public static void main(String[] args) {
    JFrame frame = new JFrame("Add Image to GUI");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(400,400);
    // 绘制一张图片,并添加到窗口中
    BufferedImage image = new BufferedImage(200, 200, BufferedImage.TYPE_INT_ARGB);
    Graphics2D g2 = image.createGraphics();
    g2.setPaint(Color.RED);
    Rectangle2D rect = new Rectangle2D.Double(0, 0, 200, 200);
    g2.fill(rect);
    g2.dispose();
    ImageIcon imageIcon = new ImageIcon(image);
    JLabel imageLabel = new JLabel(imageIcon);
    frame.getContentPane().add(imageLabel);
    frame.setVisible(true);
  }
}

  
  

评论区