java代码实现不了图片的加载,图片显示不出来,没有提示错误

mportjava.awt.BorderLayout;importjava.awt.Button;importjava.awt.Color;importjava.awt.... mport java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Image;
import java.awt.MediaTracker;
import java.awt.Panel;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.image.PixelGrabber;
import java.io.File;

import javax.imageio.ImageIO;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.filechooser.FileNameExtensionFilter;

public class 测试 extends Frame {
Image im;//,tmp;//图像
int iw,ih;
int[] pixels;
boolean flag=false;

// 构造方法
public 测试(){

setBounds(400, 400, 400, 400);
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
setVisible(true);
Panel pdown;//面板
Button load;

// 添加窗口监听事件
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
new 测试().setVisible(false);
}
});

pdown = new Panel();//面板
pdown.setBackground(Color.lightGray);
load=new Button("装载图像");
//run=new Button("运行");
//quit=new Button("停止");

this.add(pdown,BorderLayout.SOUTH);
pdown.add(load);
//pdown.add(run);
//pdown.add(quit);

load.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
jLoad_ActionPerformed(e);
}
});

};

private void setDefaultCloseOperation(int exitOnClose) {
}

public void jLoad_ActionPerformed(ActionEvent e){
// 利用MediaTracker跟踪图像的加载

JFileChooser chooser = new JFileChooser(); //创建选择文件对象
chooser.setDialogTitle("请选择文件");//设置标题
chooser.setMultiSelectionEnabled(true); //设置只能选择文件
FileNameExtensionFilter filter = new FileNameExtensionFilter("jpg","jpg");//定义可选择文件类型
chooser.setFileFilter(filter); //设置可选择文件类型

chooser.showOpenDialog(null); //打开选择文件对话框,null可设置为你当前的窗口JFrame或Frame

File file = chooser.getSelectedFile(); //file为用户选择的图片文件

MediaTracker tracker = new MediaTracker(this);
//im=Toolkit.getDefaultToolkit().getImage("source\\mid.png");
im=Toolkit.getDefaultToolkit().getImage(file.getPath());
tracker.addImage(im,0);

// 等待图像的完全加载
try{
tracker.waitForID(0);
}
catch(InterruptedException e2){
e2.printStackTrace();
}

// 获取图像的宽度iw和高度ih
iw=im.getWidth(this);
ih=im.getHeight(this);
pixels=new int[iw*ih];

try{
PixelGrabber pg=new PixelGrabber(im,0,0,iw,ih,pixels,0,iw);
pg.grabPixels();
}
catch (InterruptedException e3) {
e3.printStackTrace();
}
}

// 定义main方法,设置窗口的大小,显示窗口
public static void main(String[] args) {
测试 cg = new 测试();
cg.setLocation(50,50);
cg.setSize(500,400);
cg.show();
//cg.setVisible(true);
}
}
展开
 我来答
1063284878
推荐于2018-03-23 · TA获得超过2035个赞
知道小有建树答主
回答量:583
采纳率:100%
帮助的人:515万
展开全部
这是多久以前的代码了?show()已经是过时的方法,试试setVisible(true)。现在都没见有人用Frame了,都是用JFrame
sky丶孤星
2019-03-21
知道答主
回答量:7
采纳率:0%
帮助的人:5249
展开全部
楼主解决了吗?求分享
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式