2014-10-07 70 views
0

我有這段代碼,它運行得很好。問題是,當我嘗試使用showMessageDialog顯示它時,它顯示了一切雜亂的方式。有關如何正確顯示它的任何建議?謝謝。用JOptionPane顯示容器陣列

String tablaColeccion; 
tablaColeccion =""; 
for (int i = 0; i < informeMatrices.getVector().length; i++){ 
    if (informeMatrices.getVector()[i] != null){ 
     tablaColeccion += informeMatrices.getVector()[i] + " "; 
    } 
} 
tablaColeccion += "\n"; 

for (int i = 0; i < informeMatrices.getMatriz().length; i++) { 
    for(int u = 0; u < informeMatrices.getMatriz().length; u++){ 
     if (informeMatrices.getMatriz()[i][u] != null){ 
      tablaColeccion += informeMatrices.getMatriz()[i][u] + " "; 
     } 
    } 
    tablaColeccion += "\n"; 
} 
tablaColeccion += "\n\n"; 

JOptionPane.showMessageDialog(null,tablaColeccion,"Coleccion Completa", JOptionPane.INFORMATION_MESSAGE); 

我想將其顯示爲分隔列。任何幫助都是極好的。

+0

*「關於如何正確顯示它的任何建議?」*在選項窗格中顯示一個列表(一維數組)或表格(二維數組)。 – 2014-10-07 05:12:36

回答

1

我發現這種方式來做到這一點。這非常簡單,易於實施。這將通過簡單地使用HTML來將所有內容容納到列和行中。

StringBuilder sb = new StringBuilder(128); 

     sb.append("<html><table><tr>"); 

     for (int i = 0; i < informeMatrices.getVector().length; i++) 
     { 
      if (informeMatrices.getVector()[i] != null) 
      { 

       sb.append("<td>" + informeMatrices.getVector()[i] + "</td>"); 
      } 
     } 

     for (int i = 0; i < informeMatrices.getMatriz().length; i++) 
     { 
      sb.append("<tr>"); 

      for(int u = 0; u < informeMatrices.getMatriz().length; u++) 
      { 
       if (informeMatrices.getMatriz()[i][u] != null) 
       {      
        sb.append("<td>").append(informeMatrices.getMatriz()[i][u]).append("</td>"); 
       } 

      } 

      sb.append("</tr>"); 

     } 

     sb.append("</table></html>"); 

     JOptionPane.showMessageDialog(null,sb.toString(),"Coleccion Completa", 
       JOptionPane.INFORMATION_MESSAGE); 
+0

如果用戶永遠不需要複製數據,則HTML很好(特別是表格數據)。如果他們這樣做了,那麼'JList'或'JTable'派上用場,但是表格也可以輕鬆地進行排序和過濾。 – 2014-10-07 07:24:36