2015-10-11 23 views
0

我並不確定如何提出這個問題,因爲它很混亂。我有一個具有MVC結構的Java應用程序,它從數據庫獲取數據。我從JDBC查詢中檢索數據的String ArrayList。它包含有關比賽中競爭對手的信息(例如:名稱,Race_no,Start_Time,Swim_Time,Bike_Time,Finish_Time等)。名單大小將根據每週參賽的參賽者數量而有所不同。我從數據庫獲取數據沒有問題,但是當我將信息傳遞給控制器​​傳遞給視圖時,我無法將數據分配給JLabel。到目前爲止,數據是作爲一個大型數組發送的,所以我需要以12個塊爲單位分割數組(每個競爭對手需要設置多少個JLabel)。然後,我將這12個JLabel中的每一個設置到它自己的JPanel ArrayList中 - 然後將它們添加到一個JPanel中進行打印。我的問題是,我如何拆分ArrayList以獲得第一個12,然後是第二個12,等等。我試着做一個嵌套循環並將大小設置爲12,但當然每次只能獲得前12個。也許我需要將來自JDBC結果集的數據存儲爲其他內容..我真的需要一些指導,因爲這已經持續了好幾天。我有這個工作作爲數據處理程序類中的一個大型方法,我將使用while(rs.next())來完成所有工作,但由於MVC結構,我需要中斷代碼起來:這是理想的結果: enter image description here從ArrayList向JLabels分配文本

編輯: 我實現這個代碼,給我想要的輸出,但現在有麻煩的研究[J]循環分配與數據的JLabel的變量:

<pre> 
public void getRaceLabels() 
    { 
     ArrayList<String[]> raceLabels = dh.getRaceTimeLabels(); 

     //System.out.println(raceLabels); 

     for (int i = 0; i < raceLabels.size(); i++) 
     { 

      String[] element = (String[]) raceLabels.get(i); 
      //System.out.println(element); 
      for (int j = 0; j < element.length; j++) 
      { 

       System.out.print(element[j]+" ,"); 
      } 
      System.out.println("break"); 
     } 
</pre> 
+0

Sonds像你應該使用一個JTable – MadProgrammer

+0

是的,我可以做一個脫身JTable,但這不是客戶想要的格式。他們可以在比賽結束後將這些信息提供給競爭對手。 – AngeKing

+0

好吧,所以它聽起來更像是你應該使用JasperReports – MadProgrammer

回答

1

創建一個PO JO代表您爲單條記錄所需的基本信息。

從數據庫加載數據時,將此數據加載到POJO中。現在

,對於每一個面板,你只需要通過一個單一的對象,這意味着你現在可以用一個簡單的迭代器,而非

+0

我最終這樣做,只是迭代設置每個JLabel的文本。謝謝 – AngeKing