愿这个问题重复,但我尝试了大部分解决方案,但没有一个适合我的问题。 参考此页面:https://docs.oracle.com/javase/tutorial/uiswing/components/table.html
我想创建JTable来从我的自定义类中读取对象。作为第一步,我想用JTable测试循环。如下:
Object[][] tripsData =new Object[3][6];
for(int j=0; j< 3;j++)
for(int i =0; i< 6;i++)
{ tripsData[j][i]= new Object[] {"Kathy", "Smith","wait", "Snowboarding", 5, "false"};
}
代码工作正常,除了它显示的输出:
[Ljava.lang.Object;@41488024
[Ljava.lang.Object;@54c83ae1
[Ljava.lang.Object;@161a4f2c
我尝试使用toString()和valueOf(),但同样的事情。 任何解决的建议
答案 0 :(得分:1)
问题是你正在创建一个三维数组而不是你需要的2D。在您的代码中,您使用
tripsData[j][i]= new Object[] {"Kathy", "Smith","wait", "Snowboarding", 5, "false"};
因此"Kathy"
生成的Object
中有一个索引[j][i][0]
,"Smith"
有一个索引[j][i][1]
,依此类推。像这样填充你的数组:
Object[][] tripsData =new Object[3][6];
for(int j=0; j< 3;j++) {
tripsData[j] = new Object[]{"Kathy", "Smith", "wait", "Snowboarding", 5, "false"};
}
然后这两个
for (Object[] row : tripsData) {
for (int j = 0; j < data[0].length; j++) {
System.out.print(row[j]);
System.out.print("\t");
}
System.out.print("\n");
}
和这个
for (Object[] row : tripsData) {
System.out.println(Arrays.toString(row));
}
可以正常使用
答案 1 :(得分:0)
您可以使用Arrays.toString()
,有点类似于此代码段:
Object[][] arr = new Object[2][2];
arr[0][0] = "00";
arr[0][1] = "01";
arr[1][0] = "10";
arr[1][1] = "11";
System.out.println(Arrays.toString(arr[0]));
System.out.println(Arrays.toString(arr[1]));
这将打印
[00, 01]
[10, 11]