Java 从ArrayList创建对象[][]的简单方法<;对象>;用物体的场
因此,我用对象填充了这个Java 从ArrayList创建对象[][]的简单方法<;对象>;用物体的场,java,arrays,optimization,arraylist,jtable,Java,Arrays,Optimization,Arraylist,Jtable,因此,我用对象填充了这个ArrayList,我需要将其转换为对象[][],以便轻松地将其放入JTable中 例如: 我有一个数组列表: 我想从中得到的是一个具有以下列名的JTable: Color - Age - Eats Grass? 我当前的方法如下所示: List<Animal> ani = new ArrayList(); // Fill the list Object[][] arrayForTable = new Object[ani.size()][3]; for
ArrayList
,我需要将其转换为对象[][]
,以便轻松地将其放入JTable
中
例如:
我有一个数组列表
:
我想从中得到的是一个具有以下列名的JTable:
Color - Age - Eats Grass?
我当前的方法如下所示:
List<Animal> ani = new ArrayList();
// Fill the list
Object[][] arrayForTable = new Object[ani.size()][3];
for (int i = 0 ; i < ani.size() ; i++){
for (int j = 0 ; j < 3 ; j++){
switch(j){
case 1 : arrayForTable[i][j] = ani.get(j).getColor();break;
case 2 : arrayForTable[i][j] = ani.get(j).getAge();break;
default : arrayForTable[i][j] = ani.get(j).getEatsGrass();break;
}
}
}
List ani=new ArrayList();
//填写清单
Object[][]arrayForTable=新对象[ani.size()][3];
对于(int i=0;i
它工作得很好,但有没有更简单的方法来实现这一点。我无法想象自己对一个包含25列的
JTable
使用相同的方法。在你的Animal
类中添加一个新方法肯定会帮助你:
public Object[] getAttributesArray() {
return new Object[]{color, age, eatsGrass};
}
然后:
for (int i = 0; i < ani.size(); i++){
arrayForTable[i] = ani.get(i).getAttributesArray();
}
for(int i=0;i
那就
for (int i = 0 ; i < ani.size() ; i++){
arrayForTable[i] = new Object[]{
ani.get(i).getColor(), ani.get(i).getAge(),ani.get(i).getEatsGrass()};
}
for(int i=0;i
用于(int i=0;i
将此添加到您的动物
课程中
public Object[] getDataArray() {
return new Object[]{color, age, eatsGrass};
}
然后,使用表格模型
String columns[] = {"Color", "Age", "Eats Grass?"};
DefaultTableModel tableModel = new DefaultTableModel(columns, 0);
for (Animal animal : ani) {
tableModel.addRow(animal.getDataArray());
}
JTable animalTable = new JTable(tableModel);
更好的方法是使用适合于备份数据的
TableModel
type@SteveKuo是的,这是个好主意。谢谢!真是个好主意!向上投票,因为它回答了这个问题,但如果我有100个字段呢?@YassinHajaj如果你的类动物有100个字段,你在任何解决方案中都会遇到同样的问题。谢谢!使用tableModel当然是最好的方法。认可的!
public Object[] getDataArray() {
return new Object[]{color, age, eatsGrass};
}
String columns[] = {"Color", "Age", "Eats Grass?"};
DefaultTableModel tableModel = new DefaultTableModel(columns, 0);
for (Animal animal : ani) {
tableModel.addRow(animal.getDataArray());
}
JTable animalTable = new JTable(tableModel);