Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 文件选择器(Swing)_Java_Swing - Fatal编程技术网

Java 文件选择器(Swing)

Java 文件选择器(Swing),java,swing,Java,Swing,我实现了一个按钮,用户点击这个按钮,文件选择器弹出,用户可以选择文件,但是当他改变他的偏好时,程序总是理解第一个文件 我通过写下size()方法发现了这个bug。首先,用户选择了大小为20的设备列表,在将此文档更改为另一个大小为100的列表后,我希望看到100作为大小,但我仍然看到20 chooser = new JButton("Choose Device List"); chooser.addActionListener(new ActionListener() {

我实现了一个按钮,用户点击这个按钮,文件选择器弹出,用户可以选择文件,但是当他改变他的偏好时,程序总是理解第一个文件

我通过写下size()方法发现了这个bug。首先,用户选择了大小为20的设备列表,在将此文档更改为另一个大小为100的列表后,我希望看到100作为大小,但我仍然看到20

chooser = new JButton("Choose Device List");
        chooser.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent arg0) {
                JFileChooser fileopen = new JFileChooser();
                FileFilter filter = new FileNameExtensionFilter("csv files", "csv");
                fileopen.addChoosableFileFilter(filter);

                int ret = fileopen.showDialog(null, "Open file");

                if (ret == JFileChooser.APPROVE_OPTION) {
                 try {
                    DeviceHelper.loadDevices(fileopen.getSelectedFile());
                    int size = DeviceHelper.loadDevices(fileopen.getSelectedFile()).size();
                    System.out.println("Size of the program " + size);


                } catch (IOException e) {


                }

                }

            }
        });
我怎样才能解决这个问题?谁能帮帮我吗

编辑:

公共静态列表加载设备(文件file2)引发IOException{
如果(DeviceAddresses==null){
DeviceAddresses=新的ArrayList();
try(BufferedReader=newbufferedreader(newfilereader(file2))){
字符串行=null;
而((line=reader.readLine())!=null){
如果(line.trim().length()>0){
添加(行);
}
}
}
}
返回新的ArrayList(DeviceAddress);
}删除此支票:

if (deviceAdresses == null) {
一旦初始化了
DeviceAddresses
,该检查将始终为假,并且新文件中的行将永远不会被读取。

删除该检查:

if (deviceAdresses == null) {

一旦初始化了
DeviceAddress
,该检查将始终为假,并且新文件中的行将永远不会被读取。

DeviceHelper.loadDevices
做了什么?它返回一个列表?对于
DeviceHelper.loadDevices(File arg)
方法的代码来说,这似乎仍然是一个问题。看起来,类
DeviceHelper
不是一个标准的java类。要获得帮助,您需要提供一个仅使用标准java类的帮助。@Azodious请选中编辑
DeviceHelper.loadDevices
做什么?它返回一个列表?对于
DeviceHelper.loadDevices(File arg)
方法的代码来说,这似乎仍然是一个问题。看起来,类
DeviceHelper
不是一个标准的java类。要获得帮助,您需要提供一个仅使用标准java类的帮助。@Azodious请选中编辑