-1

重複の可能性:
ArrayListのデータを使用してJTableを作成する方法はありますか?

私のプログラムのコードは次のとおりです。

//A loan Amortization example
public class LoanTable 
{

public static void main(String[] args) 
{
    double p,n,r,a,rb,ia,pa,pno=1;

    //creating a double arraylist
    List<double[]> l = new ArrayList<double[]>();

    p=250000;
    n=360;
    r=0.416/100;
    a=1342.05;

    rb=p;

//calculating the amount as interest, amount as principal and remaining balance 
    for(int i=1; i<=n;i++)
    {
        ia=(rb*r);
        pa=a-ia;
        rb=rb-pa;

        l.add(new double[] { pno,a,ia,pa,rb });

        pno++;

    }

    for (double[] row : l) 
    {
        System.out.println(Arrays.toString(row));

    }

}
}

行の値をインポートしてテーブルを作成するにはどうすればよいですか?値のインポートが困難になります。

出力は次のようになります。

[1.0、1342.05、1040.0、302.04999999999995、249697.95]

[2.0、1342.05、1038.7434719999999、303.30652800000007、249394.64347200003]

[3.0、1342.05、1037.48171684352、304.56828315648、249090.07518884353]

[4.0、1342.05、1036.214712785589、305.835287214411、248784.23990162913]

[5.0、1342.05、1034.942437990777、307.1075620092229、248477.13233961992]

[6.0、1342.05、1033.6648705328187、308.3851294671813、248168.74721015274]

[7.0、1342.05、1032.3819883942353、309.6680116057646、247859.07919854697]

[8.0、1342.05、1031.0937694659553、310.9562305340446、247548.12296801293]

[9.0、1342.05、1029.8001915469338、312.2498084530662、247235.87315955988]

[10.0、1342.05、1028.501232343769、313.5487676562309、246922.32439190365]

ありがとう。

4

2 に答える 2

1

JTableを使用する際に理解しておくべき重要なことは、すべての JTable が内部でTableModelによってサポートされているということです。テーブルの使用に慣れていない場合は、「テーブルの使用方法」を実装について学び始めるのに適した場所としてお勧めします。

すべてのテーブル モデルは、基本的に TableModel インターフェイスを実装します。あなたのシナリオでは、AbstractTableModelクラスを拡張して、独自のテーブル モデルを作成することを検討する必要があります。javadoc によると、

具体的な TableModel を AbstractTableModel のサブクラスとして作成するには、次の 3 つのメソッドの実装を提供するだけで済みます。

public int getRowCount();
public int getColumnCount();
public Object getValueAt(int 行、int 列);

したがって、TableModel の実装は、最小限このようなものになります [たとえば、 getColumnNames(...) など、オーバーライドしたいこのクラスの他のメソッドがあるため、最小限と言ったことに注意してください]:

import java.util.List;  
import javax.swing.table.AbstractTableModel;

public class MyTableModel extends AbstractTableModel {
    
    private List<double[]> dataList;
    
    public MyTableModel(List<double[]> dataList){
        this.dataList = dataList;
    }

    @Override
    public int getRowCount() {
        return dataList.size();
    }

    @Override
    public int getColumnCount() {
        return (dataList.size() > 0) ? dataList.get(0).length : 0;
    }

    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        
        if(rowIndex < dataList.size()){
            double[] columns = dataList.get(rowIndex);
            if(columns.length > columnIndex){
                return columns[columnIndex];
            }
        }
        return null;
    }
}
于 2012-10-14T23:20:52.187 に答える
1

1 つのアプローチは、List<double[]>をバッキング データとして使用することAbstractTableModelです。このテーブル モデルの良い例は、オンラインで入手できます。

于 2012-10-14T19:27:51.407 に答える