0

クラス オブジェクトの配列を取得しています (名前: store)。ストア配列からいくつかの値を取得する必要があり、JTable (Object[][] データ) にそれらの値を入力したいと考えています。この配列を、テーブルも含むユーザー インターフェイスを描画する予定のクラスに渡しました。だから、私のコードは次のようになります

public class Dialog { // Here is where i plan to draw my UI (including the table)
....
    public Dialog(Store store) { // Store = an array of class object.
    .. }


    private class TableModel extends AbstractTableModel {

    private String[] columnNames = {"Selected ",
            "Customer Id ",
            "Customer Name "
    };
    private Object[][] data = {
            //  ???? 
    };
    }
}

さて、私の質問は、私のデザインが優れたデザインであり、OOP の原則に従っていることを確認したい場合、ストアから値を正確にどこから抽出し、どのように正確に data[][] に渡す必要があるかということです。

4

1 に答える 1

0

の単純なObject表現を作成します (オブジェクトまたはStoreを使用することもできます)。これにより、個々の行が構成されます。PropertiesMap

次に、各「行」をリストに配置します...

protected class TableModel extends AbstractTableModel {

    private String[] columnNames = {"Selected",
            "Customer Id",
            "Customer Name"};

    private List<Map> rowData;

    public TableModel() {
        rowData = new ArrayList<Map>(25);
    }

    public void add(Map data) {
        rowData.add(data);
        fireTableRowsInserted(rowData.size() - 1, rowData.size() - 1);
    }

    public int getRowCount() {
        return rowData.size();
    }

    public int getColumnCount() {
        return columnNames.length;
    }

    public String getColumnName(int column) {
        return columnNames[column];
    }

    public Object getValueAt(int rowIndex, int columnIndex) {
        Map row = rowData.get(rowIndex);
        return row.get(getColumnName(columnIndex));
    }
 }

明らかに、これは非常に単純な例ですが、理解していただければ幸いです。

于 2012-10-23T05:54:28.883 に答える