再次需要你的宝贵帮助。我有以下代码,其中我正在读取每个文件的文件内容。每个文件都与个别员工有关。点击一个名为“show staff record”的按钮,我想在GUI中显示所有员工文件数据。但不是所有它们出现在一个我希望它在MS Access中有下一个和之前的导航?有任何想法吗。或许代码?
/*********************Calculate Staff Balance***************************/
public class calcBalanceListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
FileReader fileReader = null;
BufferedReader bufferedReader = null;
try {
File folder = new File("/register/");
filePaths = new ArrayList<String>();
if (folder.isDirectory()) {
for (File file : folder.listFiles()) {
filePaths.add(file.getPath());
}
}
}//end try
catch (Exception f) {
f.printStackTrace();
}
callDetail();
}}
/ ********************************************** *************************** /
public void callDetail() {
File f = new File(filePaths.get(indexCounter));
try{
FileReader fileReader = new FileReader(f);
BufferedReader bufferedReader = new BufferedReader(fileReader);
String name = bufferedReader.readLine();
int id = Integer.parseInt(bufferedReader.readLine());
bufferedReader.readLine();
String address = bufferedReader.readLine();
int amount = Integer.parseInt(bufferedReader.readLine());
bufferedReader.readLine();
balanceFrame = new JFrame("Monthly Staff Balance");
lID.setText("Staff ID: " + id);
lname.setText("Staff ID: " + name);
laddress.setText("Staff ID: " + address);
lbalance.setText("Staff ID: " + amount);
balanceFrame.add(lID);
balanceFrame.add(lname);
balanceFrame.add(laddress);
balanceFrame.add(lbalance);
bufferedReader.close();
fileReader.close();
}//end try
catch(IOException z){
z.printStackTrace();
} //end catch
}
/ ********************************************** ************************************************** *** /
答案 0 :(得分:2)
您可能会做的是,在循环中,您可能希望迭代并获取目录中所有文件的文件位置,并将其地址放在数组列表中,而不是读取文件。
然后,您可以使用后退/前进按钮遍历阵列列表,每次根据您当前在阵列列表中的位置加载文件。
List<String> filePaths = new ArrayList<String>();
if (folder.isDirectory()) {
for (File file : folder.listFiles()) {
filePaths.add(file.getPath());
}
}
}
您需要做的就是使用一些全局计数器,然后在按下向前/向后按钮时导航数组列表。按下按钮后,加载相应的文件(由计数器确定)并显示其内容。