Object[][] のデータを表示する JTable があります。同じ画面に、ユーザーがアイテムをリストのオブジェクトに追加できるフォームもあります。私の人生では、ユーザーが「アイテムの追加」ボタンを押したときにテーブルに表示されたリストを更新することはできません。
(配列に正常に追加され、画面に印刷できますが、テーブルを変更することはできません。)
テーブルのクレートはこちら
Object[] tableHeadings = {"Item Name","Qty/Weight","Price"};
ShoppingApplication shoppingApplication = new ShoppingApplication();
Object[][] tableData = shoppingApplication.generatePurchaseTableData();
final JTable tblBill = new JTable(tableData, tableHeadings);
生成されるテーブル データは次のとおりです。
/**
* Generates data in the correct format to go into the table
* from the purchase list
* @return
*/
public Object[][] generatePurchaseTableData(){
Object[][] results = new Object[listOfPurchases.size()][2];
for (int i = 0; i<listOfPurchases.size(); i++){
Purchase purchase = listOfPurchases.get(i);
Object[] innerObject =
{purchase.getProductName(),
purchase.getPricePerUnit(),
purchase.getTotalPrice()};
results[i] = innerObject;
}
System.out.println(results.length);
return results;
}
}
これがアクションリスナーです
/* Add Action Listeners */
cmdAddItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e){
AddPurchase addPurchase = new AddPurchase(
(radWeight.isSelected()) ? 'w' :(radQty.isSelected()) ? 'q' : 'u',
txtNameOfItem.getText(),
txtAmount.getText(),
txtUnits.getText(),
txtPricePerUnit.getText());
ShoppingApplication sa = new ShoppingApplication();
Object[][] newData = sa.generatePurchaseTableData();
//TODO make tblBill updata it's contents
}
});
上記のコードから、私はあまり努力していないように見えますが、実際には何時間もこれを機能させようとしており、さまざまな方法やデータ構造を使用してみましたが、すぐに戻る場所がありませんでしたそれが上記のコードです。
私はこれを少しグーグルで検索しましたが、何も見つからないようです.なぜ他の誰もこれに行き詰まっていないように見えるのか考えられません. (多分私はただ太っているだけかもしれません)しかし、うまくいけば、この投稿は他の人にも役立ちます.
前もって感謝します :)