0

我试图从现有Object[][][] Array的问题中填充 JTable 表单,即我所有数据或包含[Ljava.lang.Object;@而不是我的(整数)数据,即使我System.out.println("")在将数据放入 JTable 之前疯狂打印数据,但我总是遇到同样的问题;这是下一个带有小屏幕截图的代码,感谢您的帮助。

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 !!*** ,一个链接,用于描述我的小应用程序的输出,非常感谢您的帮助

单击此处的此链接以获取描述图像

4

1 回答 1

2

JTable 构造函数接受一个Object[][]as 参数。

这个数组是一个行数组。行也是如此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
}
于 2013-07-15T11:04:32.227 回答