我得到[Ljava.lang.Object; @而不是我的JTable上的数据

时间:2013-07-15 10:57:55

标签: java swing object netbeans jtable

我正在尝试从现有的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 !!***中遇到错误数据的另一个问题 接下来,链接描述我的小应用程序的输出,并非常感谢帮助

Click in this link here to get Description Image

1 个答案:

答案 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
}