【问题标题】:Java multidimensional Array shown in OptionPaneOptionPane 中显示的 Java 多维数组
【发布时间】:2013-03-13 14:58:17
【问题描述】:

我找不到如何让 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 中。

提前致谢!

【问题讨论】:

    标签: java swing multidimensional-array joptionpane


    【解决方案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);
    }
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        好的,您可以如下进行:

        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);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-12-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多