public class CheckoutTableModel extends DefaultTableModel {
private String[] columnNames= {"Brand","Model","Price","Quantity","Total Price"};
private List<Integer> id;
private List<CheckoutItem> basketItems;
private static final long serialVersionUID = 7944308974044321712L;
public CheckoutTableModel()
{
id=new ArrayList<>();
basketItems=new ArrayList<>();
}
public CheckoutTableModel(List<Item>db, ArrayList<Integer>quantity)
{
id=new ArrayList<>();
basketItems=new ArrayList<>();
for (int i = 0 ; i < db.size() ; i++)
{
basketItems.add(new CheckoutItem(db.get(i).getBrand(), db.get(i).getModel(), db.get(i).getPrice(), quantity.get(i)));
}
}
public void setValueAt(Object value, int row, int column)
{
switch(column)
{
case 1:
basketItems.get(row).setBrand((String)value);
case 2:
basketItems.get(row).setModel((String)value);
case 3:
basketItems.get(row).setPrice((double)value);
case 4:
basketItems.get(row).setQuantity(Integer.parseInt((String) value));
case 5:
basketItems.get(row).setTotalPrice(Double.parseDouble((String) value));
}
}
public int getRowCount() {
if(basketItems==null)
{
return 0;
}
else
return basketItems.size();
}
public int getColumnCount() {
return 5;
}
public String getColumnName(int column) {
return columnNames[column];
}
public Object getValueAt(int row, int column) { //set values of cells
switch(column)
{
case 0:
return basketItems.get(row).getBrand();
case 1:
return basketItems.get(row).getModel();
case 2:
return basketItems.get(row).getPrice();
case 3:
return basketItems.get(row).getQuantity();
case 4:
return basketItems.get(row).getTotalPrice();
}
return null;
}
public void setTableModel(List<Item>db, List<Integer>quantities){
id=new ArrayList<>();
basketItems=new ArrayList<>();
for (int i = 0 ; i < db.size() ; i++)
{
basketItems.add(new CheckoutItem(db.get(i).getBrand(), db.get(i).getModel(), db.get(i).getPrice(), quantities.get(i)));
}
}
public boolean isCellEditable(int row,int column)
{
switch(column){
case 0: // select the cell you want make it not editable
return false;
case 1: // select the cell you want make it not editable
return false;
case 2:
return true;
case 3:
return true;
case 4:
return false;
default: return false;}
}
@SuppressWarnings("unchecked")
public Class getColumnClass(int column) {
return getValueAt(0, column).getClass();
}
}
因此,您的setvalueat
方法中至少存在两个问题...
0
索引switch
语句将允许执行一个case和下面的所有子case...所以,这意味着...
public void setValueAt(Object value, int row, int column)
{
switch(column)
{
case 1:
basketItems.get(row).setBrand((String)value);
case 2:
basketItems.get(row).setModel((String)value);
case 3:
basketItems.get(row).setPrice((double)value);
case 4:
basketItems.get(row).setQuantity(Integer.parseInt((String) value));
case 5:
basketItems.get(row).setTotalPrice(Double.parseDouble((String) value));
}
}
public void setValueAt(Object value, int row, int column)
{
switch(column)
{
case 0:
basketItems.get(row).setBrand((String)value);
break;
case 1:
basketItems.get(row).setModel((String)value);
break;
case 2:
basketItems.get(row).setPrice((double)value);
break;
case 3:
basketItems.get(row).setQuantity(Integer.parseInt((String) value));
break;
case 4:
basketItems.get(row).setTotalPrice(Double.parseDouble((String) value));
break;
}
}
问题内容: 我正在尝试用Java编写程序来管理我的Bookie帐户。我是java的新手,所以我认为我会选择一些简单的方法来了解事情的原理。我决定使用表格视图并使各个单元格可编辑。我一直在关注本教程http://java- buddy.blogspot.co.uk/2012/04/javafx-2-editable-tableview.html 。它详细说明了如何使用Java代码执行此操作,并将其复
问题内容: 我需要在jTable中显示数字,精确到小数点后两位。为此,我创建了一个自定义单元格编辑器,如下所示: 该单元格编辑器非常适合将点用作小数点的英语语言环境。但是在德语语言环境中,它不接受逗号作为小数点的值。请让我知道我的代码中有问题的地方。提前致谢。 编辑:这是我如何使其工作: 问题答案: 使用语言环境来发挥您的优势:
这是豆子 这里的问题是连//////////////////都没有显示,这意味着HTML代码中存在问题,阻止了onCellEdit函数的执行!!!
我想要一个有4列的jtable。一列必须是组合框。其他列是字符串。 只要找到问题:在注释语句jcb.seteditable(true)时;,如果我在comboxcell上单击一次,它就会打开这个单元格。但我不知道为什么效果更好。此外,我希望combox可编辑。 我怎么能对其他细胞有同样的行为。 再次您好,我已经更新了代码,以便使-如果我通过重写方法在单元格上单击一次,单元格可以编辑-如果我通过重写
连接数据源后,Tableau会捕获源的元数据详细信息,例如列和列的数据类型。这用于创建视图中使用的度量,维度和计算字段。您可以浏览元数据并更改其属性以满足某些特定要求。 1. 检查元数据 连接数据源后,所有可能的表和列都将显示在数据源中。示例:用于检查元数据的源‘Sample Coffee Chain’。 单击“Data”菜单,然后选择与数据源连接。浏览名称为“Sample Coffee chai
我在这个JTable上有问题。我这样编辑单元格 然后,我按Enter键提交更改。在这里,我希望gui用新的值刷新表。 但它们不显示,只有当我像这样更改选择时它们才显示 这是在TableModel中调用的。