1

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に表示されていることを確認することです。

前もって感謝します!

4

3 に答える 3

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);
}
于 2013-03-13T15:05:59.197 に答える
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);
于 2013-03-13T15:09:18.410 に答える
0

単純にnumbers配列を に渡して、showMessageDialog()それをどのように表示したいかを知っていると期待することはできません。適切なレイアウトを自分で探す必要があります。おそらく、目的の出力を表示するために を作成し、その上にJPanelいくつかレイアウトします。JLabels

于 2013-03-13T15:05:13.360 に答える