首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java面试 >

Java Swing 图片浏览器 BUG 乞援

2012-08-02 
Java Swing 图片浏览器 BUG 求援是getListAction的问题。第一次对image1文件夹用‘图像列表’时getListAction

Java Swing 图片浏览器 BUG 求援
是getListAction的问题。
第一次对image1文件夹用‘图像列表’时getListAction里的(全局变量)s2的值为path1(文件夹image1的路径为path1),在列表里点过再隐藏上后(再点一次‘图像列表’),第二次打开文件夹image2,对文件夹image2用‘图像列表’getListAction里的(全局变量)s2的值为传进去时还是path2(文件夹image2的路径为path2),但点过列表项后,s2的值莫名其妙的从path2变成了path1,没有再传过参,s2是个全局变量值在调用getListAction后也没有再动过,可为什么还会变啊??真的很纠结,救援助。

截图:




getListAction代码:

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



这部分代码不够的话,请加qq1535976313,求现场解惑!

[解决办法]
图片浏览器我曾经做过,
可以实现图片放大,缩小,浏览什么的,旋转没做。
挺简单的。

我是采用的model1模式来做的,也就是一个模型,可以用文件来表示图片,那么图片对象就不用抽象了,
直接就是File,但是呢,必须有一个图片工具类,用来从容器中浏览下一张,上一张,然后就是界面了,
界面做玩后,就可以写listener,按钮的监听器,也就是我们所说的控制层,
整个应用采用mvc三层架构,
还是比较简单的。

热点排行