0
我實現了一個按鈕,用戶單擊此按鈕並彈出文件選擇器,然後用戶可以選擇文件,但是當他更改其偏好時,程序始終會理解第一個文件。文件選擇器(Swing)
我通過寫下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) {
}
}
}
});
我該如何解決這個問題?有人可以幫我嗎?
編輯:
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);
}
'DeviceHelper.loadDevices'做什麼?它返回一個List?這似乎仍然是大小爲20 –
向我們顯示'DeviceHelper.loadDevices(File arg)'方法的代碼。 – Azodious
看起來,你對類DeviceHelper有一個問題,它不是一個標準的java類。要獲得幫助,您需要提供僅使用標準Java類的[SSCCE](http://sscce.org)。 –