java读取图片
JFileChooserchooser=newJFileChooser();//实例化文件选择器chooser.setFileSelectionMode(JFileCho...
JFileChooser chooser = new JFileChooser(); //实例化文件选择器
chooser.setFileSelectionMode(JFileChooser.FILES_ONLY); //设置文件打开模式为仅打开文件
chooser.setCurrentDirectory(new File(".")); //设置文件选择器当前目录
//设置图像文件过滤器
chooser.setFileFilter(new javax.swing.filechooser.FileFilter() {
public boolean accept(File file) { //可接受的文件类型
String name = file.getName().toLowerCase();
return name.endsWith(".gif")
|| name.endsWith(".jpg")
|| name.endsWith(".jpeg")
|| file.isDirectory();
}
public String getDescription() { //文件描述
return "图像文件";
}
});
int result = chooser.showOpenDialog(this); //显示文件选择对话框
if (result == JFileChooser.APPROVE_OPTION) { //得到用户行为
String fileName = chooser.getSelectedFile().getPath(); //得到选择的文件名
}
MediaTracker tracker=new MediaTracker(this);
img=Toolkit.getDefaultToolkit().getImage(fileName);
tracker.addImage(img,0);
//等待图像完全加载
try{
tracker.waitForID(0);
}
catch(InterruptedException e1)
{
e1.printStackTrace();
}
为什么图像加载不了啊?能帮忙修改下吗? 展开
chooser.setFileSelectionMode(JFileChooser.FILES_ONLY); //设置文件打开模式为仅打开文件
chooser.setCurrentDirectory(new File(".")); //设置文件选择器当前目录
//设置图像文件过滤器
chooser.setFileFilter(new javax.swing.filechooser.FileFilter() {
public boolean accept(File file) { //可接受的文件类型
String name = file.getName().toLowerCase();
return name.endsWith(".gif")
|| name.endsWith(".jpg")
|| name.endsWith(".jpeg")
|| file.isDirectory();
}
public String getDescription() { //文件描述
return "图像文件";
}
});
int result = chooser.showOpenDialog(this); //显示文件选择对话框
if (result == JFileChooser.APPROVE_OPTION) { //得到用户行为
String fileName = chooser.getSelectedFile().getPath(); //得到选择的文件名
}
MediaTracker tracker=new MediaTracker(this);
img=Toolkit.getDefaultToolkit().getImage(fileName);
tracker.addImage(img,0);
//等待图像完全加载
try{
tracker.waitForID(0);
}
catch(InterruptedException e1)
{
e1.printStackTrace();
}
为什么图像加载不了啊?能帮忙修改下吗? 展开
1个回答
展开全部
String fileName = chooser.getSelectedFile().getPath(); //得到选择的文件名
getPath() 换成 getAbsolutePath()
如果图片不是会动的gif类型的,直接适用ImageIO.read(...);是最简单的方法
ImageIO.read(...),支持所有常见类型图片,但是gif不会动
getPath() 换成 getAbsolutePath()
如果图片不是会动的gif类型的,直接适用ImageIO.read(...);是最简单的方法
ImageIO.read(...),支持所有常见类型图片,但是gif不会动
追问
那个改法还是不行,无法读取,但是改成img=Toolkit.getDefaultToolkit().getImage(fchooser.getSelectedFile().getPath());后就可以了,为什么啊?
追答
if (result == JFileChooser.APPROVE_OPTION) { //得到用户行为
String fileName = chooser.getSelectedFile().getPath(); //得到选择的文件名
}
因为你的fileName实在局部定义的,下面访问不到
实际上你应该把下面的语句全部放到上面的if语句里
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询