我正在尝试从现有的Object[][][] Array
填充JTable表单我所有数据或包含[Ljava.lang.Object;@
而不是我的(整数)数据的问题,即使我疯了System.out.println("")
在将数据放入JTable之前打印数据,但我总是遇到同样的问题;这是接下来的代码,小屏幕和thanx用于帮助。
import java.awt.Component;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
public class gass extends JFrame {
String title[] ={"Box", "Weight", "Priority"};
public gass() {
int nb=interface1.BNumber;
Object[][][] data = new Object[nb][nb][nb];
int E1=0, E2=0;
for (int i=0;i<nb;i++)
{ data[i][0][0] = i+1;
E1 = (int) (Math.random() * 100);
data[0][i][0] = E1;
E2 = (int) (Math.random() * 10);
data[0][0][i] = E2;
}
for (int j=0;j<nb;j++)
{
System.out.println("*"+data[j][0][0]+"*"+data[0][j][0]+"*"+data[0][0][j]+"*");
}
JTable table = new JTable(data, title);
Component add = this.getContentPane().add(new JScrollPane(table));
this.setVisible(true);
table.setPreferredScrollableViewportSize(table.getPreferredSize());
this.setSize(800,400);
}
}
我在第一个对象数组***data[0][0][0] = wrong information !!***
中遇到错误数据的另一个问题
接下来,链接描述我的小应用程序的输出,并非常感谢帮助
答案 0 :(得分:2)
JTable构造函数以Object[][]
为参数。
此数组是一个行数组。所以data[i]
是一行,它是一个列数组。
数组中的每一行本身都是一个列数组。每列(data[i][j]
)应包含JTable的一个单元格中显示的一些数据。
在您的情况下,此数据本身就是一个数组。由于没有与对象数组关联的特定渲染器,因此数组的toString()
方法用于显示单元格中的数组。数组的toString()方法返回类似[Ljava.lang.Object;@
的内容。
您应该告诉我们您希望在每个单元格中显示什么,以获得更好的答案,解释您应该做什么。
编辑:
根据你想要显示的内容,你只需要一个二维数组:
Object[][] data = new Object[nb][3]; // nb rows, 3 columns
for (int row = 0; row < nb; row++) {
data[row][0] = row + 1; // first column: row number
data[row][1] = Math.random(100); // second column: weight
data[row][2] = Math.random(10): // third column: priority
}