4

これが私の定義クラスです。短くて甘いものにするための取得コードは含めていません。

public class Details() {
  String name;
  double price;
  int quan;
  double totalValue;

  public String getName();
  public double getPrice();
  public int quan();
  public double totalValue();
}

これが私の詳細リストの保持方法です

ArrayList<Details> myDetails = new ArrayList<Details>();

これは、テーブルの行/列を作成するために使用したい関数です。ここでは、詳細テーブルを反復処理して、以下のようなものを生成できるようにしたいと考えています。

public Object[][] getStockTable() {
  Object[][] dynamicObject = new Object[][] {
      { "Name1", "Price1", "Quan1", "TV1"  },
      { "Name2", "Price2", "Quan2", "TV2"  },
      { "Name3", "Price3", "Quan3", "TV3"  } };

  //But how do this by iterating through rather than manually like above^
  return dynamicObject;

}

これは、テーブルの行/列を設定する方法です

dm.setDataVector(getStockTable(), new Object[] { "Name","Price", "Quan", "Total Value" });

いくつかいじった後、私はこれを行う方法を思いつくことができませんでした。スプーンで答えを与えないでください。私のためにそれをしてもらうのではなく、その方法を理解できるようにしたいと思います。

4

2 に答える 2

4

AnObject[][]は単純に の配列でObject[]あるため、OO の方法Detailは、単一の「行」を作成するメソッドを に追加することです。Object[]

public Object[] toRow() {
  return new Object[] { getName(), String.valueOf(getPrice()) /* etc. */ };
}

次にそれらを集めますgetStockTable

Object[][] tbl = new Object[myDetails.size()][];
int row = 0;
for(Detail d : myDetails) {
  tbl[row++] = d.toRow();
}
于 2012-12-05T16:54:24.923 に答える
2

このようなもの?

public Object[][] getStockTable() {
    ArrayList<Details> details = getDatailsList();
    Object[][] result = new Object[details.size()][];
    for (int i = 0; i < details.size(); i++) {
        Details detail = details.get(i);
        Object[] det = new Object[4];
        det[0] = detail.getName();
        det[1] = detail.getPrice();
        det[2] = detail.quan();
        det[3] = detail.totalValue();
        result[i] = det;
    }
    return result;
}
于 2012-12-05T16:54:46.257 に答える