Java Swing 图片浏览器 BUG 求援
是getListAction的问题。
第一次对image1文件夹用‘图像列表’时getListAction里的(全局变量)s2的值为path1(文件夹image1的路径为path1),在列表里点过再隐藏上后(再点一次‘图像列表’),第二次打开文件夹image2,对文件夹image2用‘图像列表’getListAction里的(全局变量)s2的值为传进去时还是path2(文件夹image2的路径为path2),但点过列表项后,s2的值莫名其妙的从path2变成了path1,没有再传过参,s2是个全局变量值在调用getListAction后也没有再动过,可为什么还会变啊??真的很纠结,救援助。
截图:
getListAction代码:
package Bin;import javax.swing.JList;import java.io.File;import javax.swing.event.ListSelectionEvent;import javax.swing.event.ListSelectionListener;import javax.swing.JLabel;import javax.swing.ImageIcon;public class getListAction implements photoAction,ListSelectionListener{ int m;//记录进入该方法的次数,奇数次‘显示列表’,偶数次‘关闭列表’ int j; JList list;//列表 JLabel label;//存放图片的标签 String []s1;//图片列表 String s2;//图片所在文件夹的路径 public getListAction(int m,JList list,String []s1,JLabel label,String s2)//传参 { this.m=m; this.s1=s1; this.list=list; this.label=label; this.s2=s2; } public int action()//m初始为0,由photo传进来的 { if(m%2==0)//显示列表 { list.setListData(s1); if(m==0) { list.setSelectedIndex(1); list.addListSelectionListener(this); } } else if(m%2!=0)//关闭列表 { String []s={""}; list.setListData(s); } m=m+1; return m; } public void valueChanged(ListSelectionEvent e)//响应监听 { String s3=s2;//[b]这里的s2莫名其妙的改掉了,改成了第一次读取的文件夹路径[/b] j=list.getAnchorSelectionIndex(); String ss=s3+"\\"+s1[j]; System.out.println(s3+"s3=valueChanged"); System.out.println(s2+"s2=valueChanged"); label.setIcon(new ImageIcon(ss)); }}