アイテムのインベントリに使用するアプリケーションがあります。コードで JTable を JFrame に追加しようとしています。AbstractTableModel
というオブジェクトの拡張を作成しましたItemTableModel
。また、JTable をそれぞれの JFrame の netbeans のデザイナー ビューにドラッグ アンド ドロップし、名前を に変更しましたm_jtTable
。
public class ItemTableModel extends AbstractTableModel
{
Inventory inv;
int rowCount = 0;
int colCount = 3;
public ItemTableModel(Inventory in)
{
inv = in;
}
@Override
public int getRowCount()
{
return inv.itemList.size();
}
@Override
public int getColumnCount()
{
return colCount;
}
@Override
public boolean isCellEditable(int row, int col)
{
return false;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex)
{
Item it = inv.itemsList.get(rowIndex);
Object retO = null;
switch(columnIndex)
{
case 0: retO = (Object)it.getItemNumber(); break;
case 1: retO = (Object)it.getDescription(); break;
case 2: retO = (Object)it.getPrice(); break;
default: retO = (Object)new String("null"); break;
}
return retO;
}
}
次に、私のJFrameのメソッドで、インベントリがロードされた後に以下のコードを持っています
ItemTableModel data = new ITemTableModel(this.inv);
m_jtTable.setModel(data);
いくつか質問があります。テーブルを描画するには何を呼び出す必要がありますか? テーブルモデルを具体的に netbeans に指定する必要がありますか? 列名を指定するにはどうすればよいですか? また、在庫に何か変更があった場合、これを反映するためにテーブルを再描画するにはどうすればよいですか? (在庫を検索し、検索結果のみのテーブルに変更して、このテーブルに可能な結果を表示する予定ですInventory
)
また、セルを編集可能にする必要はありません。このテーブルは表示用です。