Java 将数组存储在JTable列中

Java 将数组存储在JTable列中,java,swing,jtable,Java,Swing,Jtable,我想使用for循环在JTable列中显示数组的值 我的代码如下所示: public class MigTable extends FormsTableModel implements XmlInterface { private Element srcDoc = null; private String string = null; private ArrayList<Integer>data =new ArrayList<Integer>(Ar

我想使用for循环在JTable列中显示数组的值

我的代码如下所示:

public class MigTable extends FormsTableModel implements XmlInterface {

    private Element srcDoc = null;
    private String string = null;
    private ArrayList<Integer>data =new ArrayList<Integer>(Arrays.asList(20,10,100));

    public MigTable(Element element, String string) {
        super(element,string);

    }

    @Override
    public Class<?> getColumnClass(int columnIndex) {
        switch (columnIndex){
            case 0: return  super.getColumnClass(0);
            case 1: return super.getColumnClass(1);
            case 2: return Integer.class;
            default: return Object.class;
        }
    }

    @Override
    public int getColumnCount() {
        return 3;
    }

    @Override
    public String getColumnName(int columnIndex) {
        switch(columnIndex){
            case 0: return super.getColumnName(0);
            case 1: return super.getColumnName(1);
            case 2: return "status";
        }

        return null;
    }


    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
            // Here I'm getting the values 
            if (columnIndex==2){
                // I would like to do it here so that at column Index 2 has the datas
                //from the array list 20 10 100
            }
        }
        return super.getValueAt(rowIndex, columnIndex);
    }

    @Override
    public boolean isCellEditable(int i, int i2) {
        // TODO Implement this method
        return false;
    }

    @Override
    public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
        if (rowIndex > getColumnName(columnIndex).length())
            throw new IllegalArgumentException ("" + rowIndex);
        super.setValueAt(aValue, rowIndex, columnIndex);
    }
}
公共类MigTable扩展FormsTableModel实现XmlInterface{
私有元素srcDoc=null;
私有字符串=null;
private ArrayListdata=新的ArrayList(Arrays.asList(20,10100));
公共MigTable(元素、字符串){
超级(元素、字符串);
}
@凌驾
公共类getColumnClass(int columnIndex){
开关(列索引){
案例0:返回super.getColumnClass(0);
案例1:返回super.getColumnClass(1);
案例2:返回Integer.class;
默认值:return Object.class;
}
}
@凌驾
public int getColumnCount(){
返回3;
}
@凌驾
公共字符串getColumnName(int columnIndex){
开关(列索引){
案例0:返回super.getColumnName(0);
案例1:返回super.getColumnName(1);
案例2:返回“状态”;
}
返回null;
}
@凌驾
公共对象getValueAt(int行索引、int列索引){
//这里我得到了值
如果(columnIndex==2){
//我想在这里这样做,以便在第2列索引中有数据
//从数组列表20 10 100
}
}
返回super.getValueAt(rowIndex,columnIndex);
}
@凌驾
公共布尔值可编辑(int i,int i2){
//如何实现此方法
返回false;
}
@凌驾
public void setValueAt(对象有效、int行索引、int列索引){
if(rowIndex>getColumnName(columnIndex).length())
抛出新的IllegalArgumentException(“+rowIndex);
super.setValueAt(aValue、rowIndex、columnIndex);
}
}
谢谢你的帮助这就是你的意思吗

@Override
public Object getValueAt(int rowIndex, int columnIndex) {
    // here i am getting values 
    if (columnIndex==2){
        // i would like to do it here so that at column Index 2 has the datas from the array list 20 10 100 }
        if (rowIndex < data.size()) {
            return data.get(rowIndex);
        } else {
            return null;
        }
    }
    return super.getValueAt(rowIndex, columnIndex);
}

有了它,你根本不需要重写
getValueAt()

如果你要求别人尝试阅读你的代码,也许你可以修改缩进。对不起,凯尔伍德再次光临!我不明白你的意思?您想了解我的代码中的哪些内容!给我一个例子,我会纠正REST,你的继承链是什么?例如,
FormsTableModel
是否扩展了
DefaultTableModel
AbstractTableModel
?格式化丑陋的代码。这就像人们不在乎人们读他们的废话并需要帮助一样。删除了无关的标记人这是我关于任务溢出的第一篇帖子!我的问题解决了,下次我会更关心的谢谢你的回复!但不完全是这样!我有一个3列3行的JTable!我一直都有第一列和第二列的数据!现在在第3列(columnindex 2),我想把数组的值放在其中。数组声明为int[]array=newint[]{100,30,60};我不明白你想要什么和我给你什么之间的区别。前两列的数据是否在超类中,因此
super.getValueAt(rowIndex,columnIndex)
将获取它们?thx我没有很好地阅读您的答案!:)它现在对我起作用了。
public MigTable(Element element, String string) {
    super(element,string);
    for (int index = 0; index < data.size(); index++) {
        setValueAt(data.get(index), index, 2);
    }
}