Java记录导航

时间:2012-01-05 13:19:35

标签: java user-interface button record

再次需要你的宝贵帮助。我有以下代码,其中我正在读取每个文件的文件内容。每个文件都与个别员工有关。点击一个名为“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     


}

/ ********************************************** ************************************************** *** /

1 个答案:

答案 0 :(得分:2)

您可能会做的是,在循环中,您可能希望迭代并获取目录中所有文件的文件位置,并将其地址放在数组列表中,而不是读取文件。

然后,您可以使用后退/前进按钮遍历阵列列表,每次根据您当前在阵列列表中的位置加载文件。

List<String> filePaths = new ArrayList<String>();
if (folder.isDirectory()) {
                    for (File file : folder.listFiles()) {
                        filePaths.add(file.getPath());
                        }
                    }
                }

您需要做的就是使用一些全局计数器,然后在按下向前/向后按钮时导航数组列表。按下按钮后,加载相应的文件(由计数器确定)并显示其内容。