【发布时间】:2014-06-20 12:24:57
【问题描述】:
我已经在 src 和 bin 目录中添加了图像,并交叉检查了图像文件的名称是否正确
这里是主类
import javax.swing.*;
public class apples
{
public static void main(String args[])
{
JFrame frame = new JFrame();
MyDrawPanel wid = new MyDrawPanel();
frame.add(wid);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.setSize(300,300);
}
}
这是图像添加部分的类
import java.awt.*;
import javax.swing.*;
public class MyDrawPanel extends JPanel
{
public void paintComponent(Graphics g)
{
Image image = new ImageIcon("b.png").getImage();
g.drawImage(image,20, 20, this);
}
}
【问题讨论】:
-
尝试在您的覆盖方法之前添加@Override,您的 IDE 应该提醒您它没有被覆盖(由于错字,...)。也请致电
super.paintComponent(g),除非您有充分的理由不这样做。 -
MyDrawPanel的实例的首选大小为 0x0 像素。您的图像绘制在其边界矩形之外。 -
为了更好的性能,不要在
paintComponent(Graphics g)中创建new ImageIcon("b.png"),在Image中创建Image属性 -
您也可以阅读本教程:zetcode.com/tutorials/javaswingtutorial/painting,或任何其他。
-
希望这个thread 能够在这个方向上有所帮助,尤其是最后一个链接,如果你手动进行:-)
标签: java image swing jpanel paintcomponent