Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JTable对象数组_Java_User Interface_Jtable - Fatal编程技术网

Java JTable对象数组

Java JTable对象数组,java,user-interface,jtable,Java,User Interface,Jtable,结果不是很好,我尝试了谷歌,但大多数例子都是预先制作好的数组,所以没有多大帮助 我认为您的问题在于数据数组。java中的数组不是动态的。定义 Object[][]数据={} 您正在创建长度为0的数组 您必须能够事先知道它们的长度,或者使用列表的方法。JTable模型文档的解释过于简单,令人困惑。将数据传递给表构造函数几乎总是一个错误。您应该实现从AbstractTableModel派生的自己的表模型,并将该模型对象传递给表的构造函数 然后您的表模型可以有一个私有成员变量,如 data[0][0]

结果不是很好,我尝试了谷歌,但大多数例子都是预先制作好的数组,所以没有多大帮助

我认为您的问题在于数据数组。java中的数组不是动态的。定义

Object[][]数据={}

您正在创建长度为0的数组


您必须能够事先知道它们的长度,或者使用列表的方法。

JTable模型文档的解释过于简单,令人困惑。将数据传递给表构造函数几乎总是一个错误。您应该实现从AbstractTableModel派生的自己的表模型,并将该模型对象传递给表的构造函数

然后您的表模型可以有一个私有成员变量,如

data[0][0] = "Account";
data[0][1] = 1; //int
data[0][2] = "Name";
data[0][3] = dob; //Date class
data[0][4] = gender; //Enum 
data[0][5] = hire //Date class
data[0][6] = true; //boolean
data[0][7] = 125.23; //double
data[0][8] =  0.015; //double

public int getRowCount() {
    return emplyeeList.size();
}
等等


它使您的编程更加简单,因为模型使用您的自然数据结构来保存数据。

不清楚它为什么不起作用,你期望的是什么,发生了什么?我实际上期望它能工作,但显然没有,因为我之前与此人一起工作的代码有一个异常处理,并抛出了一个错误奇怪的是,现在我创建了一个表,接受没有任何数据进入…你是否将数据中的对象放在JTable之前创建?是的,我认为这可能是个问题,我最终只是创建了一个空表,并添加了看起来更简单的行;编号
Object[][]数据=新对象[行][cols]
public ArrayList<Person> employeeList = new ArrayList<Person>();
public int getRowCount() {
    return emplyeeList.size();
}
public Object getValueAt(int rowIndex, int columnIndex) {
    Person p = employeeList.get(rowIndex);
    switch (columnIndex) {
        case 1: 
              return p.getName();
        ....
    }
}