怎么在Frame 窗口中显示图片?
时间: 2024-09-28 21:10:14 浏览: 14
在Java Swing编程中,在JFrame窗口中显示图片通常需要通过`javax.swing.ImageIcon`类或者直接使用`BufferedImage`对象。以下是两个简单的方法:
1. 使用ImageIcon:
```java
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Main {
public static void main(String[] args) {
// 加载图片资源
ImageIcon imageIcon = new ImageIcon("path_to_your_image.jpg");
// 创建一个新的JFrame
JFrame frame = new JFrame("显示图片");
// 创建一个标签,设置背景为透明(如果不需要透明,可以省略)
JLabel label = new JLabel(new JComponent() {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(imageIcon.getImage(), 0, 0, null); // 绘制图片
}
}, imageIcon, JLabel.CENTER);
// 设置窗口大小和其他属性,然后添加标签到窗口
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 400);
frame.getContentPane().add(label);
frame.setVisible(true);
}
}
```
记得将"路径_to_your_image.jpg"替换为实际的图片文件路径。
2. 使用BufferedImage:
```java
import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
public class Main {
public static void main(String[] args) throws IOException {
String imagePath = "path_to_your_image.jpg";
BufferedImage image = ImageIO.read(new File(imagePath));
// 创建一个新的JFrame
JFrame frame = new JFrame("显示图片");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(image.getWidth(), image.getHeight());
// 添加图像到窗口
frame.getContentPane().add(new JLabel(new ImageIcon(image)));
frame.setVisible(true);
}
}
```
同样,这里也需要将"path_to_your_image.jpg"替换为实际的图片文件路径。