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);
}
} 展开
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);
}
} 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询