Java Swing如何在JTable中编辑双单元格

校园

我有一个Jtable,其中的一列显示了价格,该价格应该是可编辑的。但是,每当我尝试更新单元格值时,都会出现异常:

java.lang.ClassCastException: java.lang.Double cannot be cast to java.lang.String

我的产品的型号如下:

public class Product{
private double price;
private String name;
private Icon pic;

public Product(String name, double price){
    this.name= name;
    this.price = price;
}

public void setPrice(double price){
    this.price = price;
}

//other getters and setters

}

在我的自定义类中,扩展AbstractTableModel:

private ArrayList<Product> products;

//constructor and other methods
public void setValueAt(Object val, int row, int col) {
    if (col == 2){
        try{
            double price = Double.parseDouble((String)val);
             products.get(row).setPrice(price);          
        }
        catch(Exception e){
        }
        fireTableCellUpdated(row, col);
    }
  }

  public Class<?> getColumnClass(int c) {

    return getValueAt(0, c).getClass();
  }

  @Override
public Object getValueAt(int rowNo, int column) {
    Product item = products.get(rowNo);

    switch(column){
        case 0: return item.getPic(); 
        case 1: return item.getName();
        case 2: return item.getPrice();
        default: return null;
    }       
}

我应该将价格更改为字符串吗?还有其他正常方法吗?如果我删除了getColumnClass,则价格更改有效,但是我无法显示产品Pic,因此这不是解决方案。

维克兰特·卡什雅普

这条线有问题(我在“问题”中添加了您的代码所分析的内容)。您只能尝试将doubleObject解析为,String这是不可能的,java因为String之间没有子对父母的关系Double

double price = Double.parseDouble((String)val); //trying to cast double as String.

这行代码将引发ClassCastException因为valdouble对象类型而不是字符串。

您可以尝试使用此方法。

double price = (double)val; //try this

谢谢你。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Java-如何使JTable中的单元格可编辑?

Java Swing:如何根据文本更改JTable列中单元格的颜色?

Java Swing:如何基于文本更改JTable列中单元格的颜色?

插入到Java swing中的JTable单元格中的组合框的操作事件

Java Swing JTable更改单元格边框

在 Java Netbeans 中禁用 JTable 单元格

如何在Java Swing应用程序的JTable单元内正确设置可编辑复选框?

Java JTable更改单元格颜色

Java - Jtable - 不同颜色的单元格

Java Swing GridLayout“单元格跨度”?

java:如何只选择一个jtable中的一个单元格而不是整个行

如何在JAVA中使用apache POI在Excel中的单元格中写入?

如何在jtable中强制单元格编辑器接受编辑

如何在Java中使用POI合并单元格

如何在Java中读取具有空值的Excel单元格...?

Markdown:如何在表单元格中插入Java代码块?

如何在Excel单元格SXSSFSheet Java中添加检查符号

如何在Java中读取包含某些单元格且包含多行的.csv文件?

如何在Intellij Java GUI设计器GridlayoutManager中制作均等划分的单元格

如何在Java中使用aspose pdf在表格单元格中设置垂直文本样式

如何在合并的单元格POI Java中插入值

已定义单元格更改的 Java jTable 颜色行

从嵌套的JMenuItems上下文菜单中获取选定的单元格行(Java Swing)

Java swing GridLayout调整单元格大小

在itextpdf java中对齐单元格

如何在DefaultTableModel / JTable中合并单元格?

如何在jtable单元格中换行?

如何在JTable单元格中显示动画

如何使JTable在Java中不可编辑?