再次需要您的宝贵帮助。我有以下代码,其中我正在读取每个文件的文件内容。每个文件都与个别员工相关。单击名为“显示员工记录”的按钮后,我想在 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
}
/**************************************************** ****************************************************** ***/
最佳答案
您可能会做的是,在循环中,您可能希望迭代并获取目录中所有文件的文件位置,并将它们的地址放入数组列表中,而不是读取文件。
然后,您可以使用后退/前进按钮遍历数组列表,每次根据当前在数组列表中的位置加载文件。
List<String> filePaths = new ArrayList<String>();
if (folder.isDirectory()) {
for (File file : folder.listFiles()) {
filePaths.add(file.getPath());
}
}
}
您需要做的就是拥有一些全局计数器,然后在按下前进/后退按钮时使用它来导航数组列表。按下按钮后,加载适当的文件(由计数器确定)并显示其内容。
关于Java 记录导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8743187/