2017-09-06 146 views
-2

我喜欢用Joptionpane居中数据的数据,我看着string.format和其他,但没有任何帮助,我想要的东西像矩阵中的所有信息,它下降彼此和一个“|”到separete每一列Java数组2d数组中心字符串数据类型

在数据犯规alignt的信息的信息

score [0][0]="Empresa  " 
score [0][1]="Guanacaste"; 
score [0][2]="Alajuela"; 
score [0][3]="Heredia"; 
score [0][4]="San Jose"; 
score [0][5]="Cartago"; 
score [0][6]="Limon"; 
score [0][7]="Puntarenas"; 
score [0][8]="Total"; 
score [0][9]="Porcentaje"; 
score [1][0]="SOIN"+"    "; 
score [2][0]="AVANTICA"+"  "; 
score [3][0]="INNOVASOFT "; 
score [4][0]="CRUX"+"  "+"  "; 
score [5][0]="NCQ"+"  "+"   "; 

这是阵列:String [][] score= new String[6][10];

public static void Output() { 
    int l = 0; 
    String data = ""; 
    if (score[0][0] != (null)) { 
    while (l < score.length) { 
     for (int i = 0; i < 10; i++) { 
     if (score[l][i] == null) { 
      score[l][i] = "0"; 
     } 
     data += " | " + score[l][i]; 

     if (i == 9) { 
      data += " |"; 
     } 

     } 
     l++; 
     data += "\n"; 
    } 
    JOptionPane.showMessageDialog(null, data); 
    } else { 
    JOptionPane.showMessageDialog(null, "No se han ingresado datos", "Datos ingresados", JOptionPane.INFORMATION_MESSAGE); 
    } 
} 
+0

可能重复[在JOptionPane中对齐字符串](https://stackoverflow.com/questions/14797845/aligning-a-string-in-joptionpane) – nullpointer

+0

[链接](https://stackoverflow.com/ questions/14797845/aligning-a-string-in-joptionpane)does not work whit我的问题 –

+0

你是什么意思的“不工作”? –

回答

0

尝试是这样的:

public static void output() 
{ 
    final StringBuilder data = new StringBuilder(1024).append("<html><table>"); 
    final Formatter fmt = new Formatter(data); 
    if (score[0][0] != null) 
    { 
    for (int l = 0; l < score.length; ++l) 
    { 
     data.append("<tr>"); 
     for (int i = 0; i < 10; ++i) 
     { 
     if (score[l][i] == null) 
     { 
      score[l][i] = "0"; 
     } 
     fmt.format("<td>%s</td>", score[l][i]); 
     } 
     data.append("</tr>"; 
    } 
    JOptionPane.showMessageDialog(null, data.toString()); 
    } 
    else 
    { 
    JOptionPane.showMessageDialog(null, "No se han ingresado datos", "Datos ingresados", 
            JOptionPane.INFORMATION_MESSAGE); 
    } 
} 
+0

线程异常“主” java.util.IllegalFormatConversionException:d = java.lang.String中 \t在$的java.util.Formatter FormatSpecifier.failConversion(来源不明) \t在$的java.util.Formatter FormatSpecifier.printInteger(来源不明) ! \t at java.util.Formatter $ FormatSpecifier.print(Unknown Source) \t at java.util.Formatter.format(Unknown Source) \t at java.util.Formatter.format(Unknown Source) –

0

所以我找到这个解决方案

int l=0; 
String [][] matriz= new String [6][10]; 

StringBuilder result=new StringBuilder();// this will save and output the matirz 

if(score[0][0]!=null){ 

    for(int i =0;i<6;i++){ 

     for(int j=0;j<10;j++){ 

      matriz[i][j]=score[i][j]; 

     }//for columnas 

    }//for lineas 

}//if encargado de crear matriz copia 
if(score[0][0]!=(null)){ 
    result.append("<html><font face='Arial'>"); 
    result.append("<table>"); 
    result.append("<tr>"); 
    while(l<score.length){ 

     for(int i=0;i<10;i++){ 


      if(score[l][i]==null){ 

       score[l][i]="0"; 
      }//if revisa que los datos en la matriz no seal null 


      //data+="| "+matriz[l][i]+" "; 
      result.append("|"); 
      result.append("<td align='center'>").append(score[l][i]).append("</td>");// inserting the matrix data into result 
       if(i==9){ 
        result.append(" |"); 
       } 

      }//for 
     l++; 
     result.append("</tr>"); 
     result.append("<tr>"); 
     //result.append("\n"); 


      }//while 
      JOptionPane.showMessageDialog(null,result,"Datos Ingresados",JOptionPane.INFORMATION_MESSAGE); 
      }//if 
else{JOptionPane.showMessageDialog(null, "No se han ingresado datos","Datos Ingresados",JOptionPane.INFORMATION_MESSAGE);}