我在java中创建一个简单的应用程序,在JFrame上显示 JPEG
图像。
我创建了一个 MyPanel
类,扩展了 JPanel
并覆盖了paintComponent()方法:
import javax.swing.*;
import java.awt.*;
public class MyPanel extends JPanel {
public void paintComponent(Graphics graphics)
{
Image image = new ImageIcon("ax.jpeg").getImage();
graphics.drawImage(image, 1, 1, this);
}
}
然后我将新创建的面板添加到我的主应用程序类中的JFrame:
import javax.swing.*;
public class MyGraphicalApp {
public JFrame jFrame = new JFrame();
public MyPanel myPanel = new MyPanel();
public static void main(String[] args) {
MyGraphicalApp myGraphicalApp = new MyGraphicalApp();
myGraphicalApp.go();
}
public void go()
{
jFrame.getContentPane().add(myPanel);
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jFrame.setSize(300,300);
jFrame.setVisible(true);
}
}
问题在于它根本不显示图像。我的图片驻留在我的源文件中:
src
------- ax.jpeg
|
------- MyGraphicalApp.java
|
------- MyPanel.java
感谢您的帮助。
答案 0 :(得分:3)
确保将图像文件所在的目录添加到类路径中。然后在类构造函数中加载图像,如下所示:
protected BufferedImage image;
public MyPanel() throws IOException {
URL imageURL = getClass().getResource("/ax.jpeg");
if (imageURL == null) {
throw new FileNotFoundException();
}
this.image = ImageIO.read(imageURL);
}