2012-01-05 73 views
1

您需要再次提供寶貴幫助。我有以下代碼,我正在讀取每個文件的文件內容。每個文件都與個別員工有關。點擊一個名爲「顯示員工記錄」的按鈕,我想在GUI中顯示所有員工文件數據。但而不是所有他們出現在一個我希望它有像MS Access中的導航下一個和上一個?有任何想法嗎。一個代碼也許?Java Record Navigation

/*********************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  


} 

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

回答

2

你可能會做的是在循環中,您可能不想讀取文件,而是需要遍歷並獲取目錄中所有文件的文件位置,並將其地址放入數組列表中。

然後,您可以使用後退/前進按鈕遍歷數組列表,每次根據當前位於數組列表中的哪個位置加載文件。

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

您只需要有一些全局計數器用於在按下向前/向後按鈕時導航數組列表。一旦按下按鈕,加載相應的文件(由計數器確定)並顯示其內容。

+0

好主意,一個示例代碼? – user1106130 2012-01-05 13:39:36

+0

@ user1106130我編輯了我的回覆。 – npinti 2012-01-05 13:46:14

+0

可以演示全局計數器 – user1106130 2012-01-05 13:54:37