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

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);
}
}

这是多久以前的代码了?show()已经是过时的方法,试试setVisible(true)。现在都没见有人用Frame了,都是用JFrame
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-03-21
楼主解决了吗?求分享
相似回答