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