java - 文件选择器(Swing)

标签 java swing

我实现了一个按钮,用户单击此按钮,会弹出文件选择器,用户可以选择文件,但是当他更改首选项时,程序始终会理解第一个文件。

我通过写下 size() 方法发现了这个错误。首先,用户选择了大小为 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) {


                }

                }

            }
        });

我该如何解决这个问题?有人可以帮我吗?

编辑:

 public static List<String> loadDevices(File file2) throws IOException {

if (deviceAdresses == null) {

  deviceAdresses = new ArrayList<>();

try (BufferedReader reader = new BufferedReader(new FileReader(file2))) {

    String line = null;
    while ((line = reader.readLine()) != null) {
      if (line.trim().length() > 0) {
        deviceAdresses.add(line);
      }
    }

  }

}



return new ArrayList<String>(deviceAdresses);

}

最佳答案

删除此检查:

if (deviceAdresses == null) {

一旦 deviceAdresses 初始化,此检查将始终为 false,并且永远不会读取新文件中的行。

关于java - 文件选择器(Swing),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37743632/

相关文章:

java - 创建大量实例是我的程序变慢的原因吗? (Java 图形)

Java - Android PreferenceFragment 保存和加载首选项

java - 无法理解滚动面板

java - JTable 中的居中 JLabel

java - 绘制用自己的 Painter 创建的 JPanel

java - 正确配置spring security oauth2

java - 使用 Java 捕获和显示图像

java - Spring 安全 : java. sql.SQLException : Column Index out of range, 3 > 2

java - 在按键时添加 JLabel

java - GroupLayout 和组件大小跨度