java实现浏览器ui中的收藏夹_Java实现简单的图片浏览器

第一次写博客,不喜勿喷。

最近一个小师弟问我怎么用Java做图片浏览器,感觉好久没玩Java了,就自己动手做了一下。

学校的教程是用Swing来做界面的,所以这里也用这个来讲。

首先要做个大概的界面出来,eclipse有一个很好用的插件叫做WindowBuilder,可以可视化编辑界面,自动帮你生成代码。

界面如下:

bddff8f23fa337b6d2563816e395a6d5.png

可能有些同学不知道图片该怎么弄出来,其实很简单。

创建一个JLabel,然后里面不要写字。JLabel有一个icon的属性,照片就放在这里面。

这里要注意的是,WindowBuilder生成的界面代码一般是放在构造方法里面的,里面的变量都是局部变量。而这个JLabel要设置为全局变量,因为之后的图片切换要用到这个变量。

1 Img = new JLabel("");2 Img.setIcon(new ImageIcon(" 这里写照片的地址 "));3 Img.setBounds(14, 13, 404, 257);4 contentPane.add(Img);

因为时间有限,没有做图片自适应。这里贴一个图片自适应的教程。

然后我们只需要更换图片的地址,就能让JLabel显示不同的图片,实现图片浏览器的功能。

首先我们可以给之前做好的“open”按钮添加一个点击事件,点击后可以调用JFileChooser来浏览本地的文件,获取到选中的文件地址,然后存入ImgList保存。

1 public voidactionPerformed(ActionEvent e) {2 //初始化文件选择器

3 JFileChooser jfc=newJFileChooser();4 jfc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES );5 //弹出选择文件的界面

6 jfc.showDialog(new JLabel(), "选择");7 File file=jfc.getSelectedFile();8 //pasePath是一个分析文件的方法,主要是用于判断读取到的是文件夹还是文件,并将其中的图片类型的文件地址存到ImgList中。

9 pasePath(file.getAbsolutePath());10 //最后显示读取到的第一张图片。

11 if(imglist.size()>0) {12 String[] list = (String[])imglist.get(0);13 Img.setIcon(new ImageIcon(list[0]));14 }15 }

//分析文件的方法

public voidpasePath(String path) {

imglist.clear();//清理掉之前的图片地址。

File file = newFile(path);//如果是文件,就分析文件的后缀名是不是jpg或者png,如果是就存进imglist。

if (!file.isDirectory()) {

String absolutepath=file.getAbsolutePath();

String name=file.getName();

String[] list= newString[] {absolutepath,name};

String[] strArray= file.getName().split("\\.");

System.out.println(strArray[strArray.length-1]);if(strArray[strArray.length-1].equals("jpg")||strArray[strArray.length-1].equals("png")) {

imglist.add(list);

}//如果不是文件,就存是文件夹,按上一个if语句内的写法,逐个分析文件夹内的文件。区别就是这个存进去的图片地址可能有很多个。

} else if(file.isDirectory()) {

System.out.println("文件夹");

String[] filelist=file.list();for (int i = 0; i < filelist.length; i++) {

File readfile= new File(path + "\\" +filelist[i]);if (!readfile.isDirectory()) {

String absolutepath=readfile.getAbsolutePath();

String name=readfile.getName();

String[] list= newString[] {absolutepath,name};

String[] strArray= readfile.getName().split("\\.");

System.out.println(strArray[strArray.length-1]);if(strArray[strArray.length-1].equals("jpg")||strArray[strArray.length-1].equals("png")) {

imglist.add(list);

}

}

}

}

}

到这里,我们已经可以读取到文件夹内的图片了。然后我们要给“上一个”,“下一个”按钮添加事件,在点击的时候切换图片。

其实就是很简单的一个判断语句,这是“上一个”按钮的判断语句。

如果imglist的大小大于0,说明列表内有东西。然后判断,如果现在读取的这个照片是0,那么肯定就没有上一个了,就读取最后一张照片。

我在这里用了一个全局变量 nowindex 表示当前读取到的图片,然后根据这个进行加减或赋值就可以进行切换了。

判断后重新设置图片的地址,就可以实现切换图片了。

“下一个”的事件就反过来做就行了。

if(imglist.size()>0) {if(nowindex==0) {

nowindex=imglist.size()-1;

}else{

nowindex= nowindex-1;

}

String[] list=(String[])imglist.get(nowindex);

Img.setIcon(new ImageIcon(list[0]));

}

最后的运行结果:

19a94074f9767237e1d0c02a4f3fac9e.png

感谢阅读~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值