JS multidimensional Array显示在JOptionPane中

时间:2013-03-13 14:58:18

标签: java swing multidimensional-array joptionpane

我找不到如何让JOptionPane显示多维数组的方法。

这是我的第一次尝试。

public static void main (String [] args)
{
    int[][] numbers = new int[5][5];

    int rows = 5;
    int columns = 5;

    numbers[0][0] = 30;
    numbers[0][1] = 29;
    numbers[0][2] = 28;
    numbers[0][3] = 27;
    numbers[0][4] = 26;

    numbers[1][0] = 26;
    numbers[1][2] = 25;
    numbers[1][2] = 24;
    numbers[1][3] = 23;
    numbers[1][4] = 22;

    int x, y;

    for (x = 0;  x < rows; x++)
    {
        for (y = 0; y < columns; y++)
        {
            System.out.print(numbers[x][y] + " ");
        }
        System.out.println("");

    }
    JOptionPane.showMessageDialog(null, numbers,"Arrays",JOptionPane.INFORMATION_MESSAGE);
    System.exit(0);
}

这是JOptionPane输出

https://www.dropbox.com/s/hfyjsgeaimpr2dh/JOptionPane%20output.PNG

正如你所看到的那样是错误的。

控制台输出如下所示。

https://www.dropbox.com/s/ac0a65kttdora27/Console%20output.PNG

我想要的是你看到控制台输出显示在JOptionPane中。

提前致谢!

3 个答案:

答案 0 :(得分:1)

您可以像打印到控制台一样使用StringBuilder

public static void main (String [] args)
{
    int[][] numbers = new int[5][5];

    int rows = 5;
    int columns = 5;

    numbers[0][0] = 30;
    numbers[0][1] = 29;
    numbers[0][2] = 28;
    numbers[0][3] = 27;
    numbers[0][4] = 26;

    numbers[1][0] = 26;
    numbers[1][2] = 25;
    numbers[1][2] = 24;
    numbers[1][3] = 23;
    numbers[1][4] = 22;

    int x, y;
    StringBuilder builder = new StringBuilder();
    for (x = 0;  x < rows; x++)
    {
        for (y = 0; y < columns; y++)
        {
            builder.append(numbers[x][y] + " ");
        }
        builder.append("\n");
    }
    JOptionPane.showMessageDialog(null, builder,"Arrays",JOptionPane.INFORMATION_MESSAGE);
    System.exit(0);
}

答案 1 :(得分:0)

您不能简单地将numbers数组传递给showMessageDialog(),并希望它知道您希望如何显示它。你必须自己寻找合适的布局。也许你创建一个JPanel并在其上布置一些JLabels来显示你想要的输出。

答案 2 :(得分:0)

确定您可以按以下步骤操作:

StringBuilder sBuilder = new StringBuilder();
sBuilder.append("<Html><Body>");
sBuilder.append("<Table>");
for (int i = 0  ; i < numbers.length ;i++)
{
  sBuilder.append("<tr>");
  for ( int j = 0 ; j < numbers[i].length; j++)
  {
    sBuilder.append("<td>"+numbers[i][j]+"</td>");
  }
  sBuilder.append("</tr>");
}
sBuilder.append("</Table>");
sBuilder.append("</Body></Html>");
JOptionPane.showMessageDialog(null, sBuilder.toString(),"Arrays",JOptionPane.INFORMATION_MESSAGE);