1

私はJava Swingの経験が少なく、各要素に2つのパラメーターを指定する必要がある動的リストを作成したいと考えています。

n個の要素があり、nの数は不明で、他の手順に依存しています...

n 個の要素に対して、swing GUI に n 行が表示され、左側の各行にはパラメータ String id と int time を設定するための 2 つのボックスが表示されます。

4

2 に答える 2

4

データ値ごとに 1 つずつ、2 つの列を持つJTableを使用するのはどうでしょうか。

テーブルの使用に関する優れたチュートリアルがhttp://docs.oracle.com/javase/tutorial/uiswing/components/table.htmlにあります。

docs.oracle.com の JTable の例

于 2012-04-07T21:14:30.573 に答える
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();
}
}
于 2012-04-07T21:17:33.600 に答える