我找不到如何让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中。
提前致谢!
答案 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);