如何动态创建一个带有n行的swing列表,其中每行放置2个数据

时间:2012-04-07 21:11:48

标签: java swing

我对Java Swing的经验较少,我想创建一个动态列表,其中每个元素必须指定2个参数。

我有n个元素,其中数字n未知并且取决于其他程序......

我希望对于n个元素,一个swing GUI显示n行,其中左边的每行有2个框,用于设置参数String id和int time。

2 个答案:

答案 0 :(得分:4)

如何将JTable与两列一起使用,每个数据值对应一列?

有一个关于在http://docs.oracle.com/javase/tutorial/uiswing/components/table.html

使用表格的好教程

JTable Example from docs.oracle.com

答案 1 :(得分:1)

使用ArrayList您可以:

import java.util.ArrayList;

public class ArrayList2d<Type>
{
ArrayList<ArrayList<Type>>  array;

public ArrayList2d()
{
    array = new ArrayList<ArrayList<Type>>();
}

public void ensureCapacity(int num)
{
    array.ensureCapacity(num);
}


public void ensureCapacity(int row, int num)
{
    ensureCapacity(row);
    while (row < getNumRows())
    {
        array.add(new ArrayList<Type>());
    }
    array.get(row).ensureCapacity(num);
}


public void Add(Type data, int row)
{
    ensureCapacity(row);
    while(row >= getNumRows())
    {
        array.add(new ArrayList<Type>());
    }
    array.get(row).add(data);
}

public Type get(int row, int col)
{
    return array.get(row).get(col);
}

public void set(int row, int col, Type data)
{
    array.get(row).set(col,data);
}

public void remove(int row, int col)
{
    array.get(row).remove(col);
}

public boolean contains(Type data)
{
    for (int i = 0; i < array.size(); i++)
    {
        if (array.get(i).contains(data))
        {
            return true;
        }
    }
    return false;
}

public int getNumRows()
{
    return array.size();
}

public int getNumCols(int row)
{
    return array.get(row).size();
}
}