请问为什么JPanel中drawImage函数画不出图片

orangeabc 2008-07-20 12:27:44
请问为什么JPanel中drawImage函数画不出图片

代码如下:
public class Face extends Frame{

public Face (String str){
super(str);


}

public static void main(String args[ ]){
Frame ff = new Face("gui");
Mypanel panel = new Mypanel();

ff.add(panel);
ActionListener al = new ActionListener();
ff.addWindowListener(al);

ff.setVisible(true);
}



}



class Mypanel extends javax.swing.JPanel
{
public void paint(Graphics g) {
Image image= Toolkit.getDefaultToolkit().createImage("33.jpg");

g.drawImage(image,100,100,this);

}

public void paintComponent(Graphics g) {
Image image= Toolkit.getDefaultToolkit().createImage("33.jpg");

g.drawImage(image,100,100,this);
}


}
无论重载paint,或paintComponent都不行,没有看到图片画出,请高手指点原因。
...全文
328 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
B_Lee 2008-07-23
  • 打赏
  • 举报
回复
狂人真幽默
craky 2008-07-20
  • 打赏
  • 举报
回复
拜托,学java就要遵守java的习惯,看着函数两个字真TMD别扭
craky 2008-07-20
  • 打赏
  • 举报
回复
看注释!!!!有空了多看看书!!!!!


import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Face extends JFrame // 改成了JFrame,强烈建议不要使用AWT的组件
{
//序列化字段,可以删除
private static final long serialVersionUID = -1743769932464390769L;

public Face(String str)
{
super(str);
}

public static void main(String args[])
{
// 为什么声明成final,下面有讲
final JFrame ff = new Face("gui");
Mypanel panel = new Mypanel();

ff.add(panel);

// 我不知道你到底想干什么,ActionListener是接口,不能实例化
// ActionListener al = new ActionListener();
// addWindowListener不能添加ActionListener
// ff.addWindowListener(al);

// ===============================================
WindowListener al = new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
// ff在内部类里使用,必须声明成final
ff.dispose();
}
};

ff.addWindowListener(al);
// ===============================================

// 上面一块可以用下面一行代替,功能相同
// ff.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

// 设置初始大小
ff.setSize(600, 500);
// 设置初始时位于屏幕中间
ff.setLocationRelativeTo(null);
ff.setVisible(true);
}
}

class Mypanel extends JPanel
{
// 序列化字段,可以删除
private static final long serialVersionUID = 8094515598516460551L;

public void paintComponent(Graphics g)
{
// 这样创建的图片似乎画不出来
// Image image = Toolkit.getDefaultToolkit().createImage("33.jpg");
// 图片33.jpg的位置在项目根目录下
Image image = new ImageIcon("33.jpg").getImage();
g.drawImage(image, 100, 100, this);
}
}

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧