ユーザーがアイテムを購入し、後のターンで価格が上昇したときにそれらを販売する単純なシミュレーション ゲームを作成しています。アイテムの現在の価格、アイテムの種類などを一覧表示する JTable がありますが、コードを多少簡略化したので、見やすくなっています。
public void example()
{
Object rowData[][] = {
{ "Item 1", ""+game.getItem1Price()+""},
{ "Item 2", ""+game.getItem2Price()+""},
{ "Item 3", ""+game.getItem3Price()+""}};
//game.getItem1Price refers to a method in another class that returns the price of Item1
String[] columnNames = {"Item Name",
"Item Price"};
DefaultTableModel tableModel = new DefaultTableModel(rowData, columnNames)
{
@Override
public boolean isCellEditable(int row, int column) {
//all cells false
return false;
}
};
JTable priceTable = new JTable();
priceTable.setModel(tableModel);
priceTable.setSelectionMode(1);
priceTable.setRowSelectionAllowed(true);
JScrollPane scrollPane = new JScrollPane(priceTable);
//then add table to frame
}
各ターンの終わりに価格が変更され、変更された価格をテーブルに表示したいのですが、テーブルの更新自体を取得する方法がわかりません。オンラインで調べたところ、.repaint() などの多くのメソッドが見つかりましたが、機能していないようです。
事前に乾杯してください。