Java JTable中的类型出错

Java JTable中的类型出错,java,swing,types,jtable,Java,Swing,Types,Jtable,我有一个有两列的JTable。第一个只包含一周中各天的名称,第二个包含一个double值 有三个按钮: 使用此方法自动生成测试的double值: private void autoGenerate(java.awt.event.ActionEvent evt) { for (int a=0; a<Config.n; a++){ tabla.setValueAt(a - a*0.5, a, 1);} } 保存数据的按钮执行以下操作: priva

我有一个有两列的JTable。第一个只包含一周中各天的名称,第二个包含一个
double

有三个按钮:

  • 使用此方法自动生成测试的
    double
    值:

    private void autoGenerate(java.awt.event.ActionEvent evt) {
            for (int a=0; a<Config.n; a++){
                tabla.setValueAt(a - a*0.5, a, 1);}
    
    
    }
    
    保存数据的按钮执行以下操作:

    private void jButton5ActionPerformed(java.awt.event.ActionEvent evt,Patient p) {
        try {
            for (int k = 0; k < Config.n; k++) {
                DBManager.save(p, k+1,(double)this.table.getValueAt(k, 1));
            }
       } catch (SQLException e) {
            System.out.println(e.getMessage());
        }
    }
    
    private void jButton5ActionPerformed(java.awt.event.ActionEvent evt,患者p){
    试一试{
    对于(int k=0;k
    但是,当我在手动键入值后尝试将数据保存到BD时,会发生错误:

    在不对列类或
    CellEditor
    进行任何其他修改的情况下,通过
    JTable
    UI编辑值将导致
    字符串
    对象存储在模型中。因此,当检索值并尝试转换为双精度时,
    ClassCastException
    。考虑通过 TabLimoDele/Cult>显式定义列类-这不仅导致存储在模型中的<代码>双< /代码>对象,而且还会影响CeleDistor(避免在输入非数值数据时出现任何错误)。p>
    DefaultTableModel=新的DefaultTableModel(){
    @凌驾
    公共类getColumnClass(int-col){
    如果(列==1){
    返回Double.class;
    }
    返回字符串.class;
    }
    @凌驾
    public int getColumnCount(){
    返回2;
    }
    };
    JTable table=新的JTable(模型);
    
    但是,当我在手动键入值后尝试将数据保存到BD时,会发生错误:

    在不对列类或
    CellEditor
    进行任何其他修改的情况下,通过
    JTable
    UI编辑值将导致
    字符串
    对象存储在模型中。因此,当检索值并尝试转换为双精度时,
    ClassCastException
    。考虑通过 TabLimoDele/Cult>显式定义列类-这不仅导致存储在模型中的<代码>双< /代码>对象,而且还会影响CeleDistor(避免在输入非数值数据时出现任何错误)。p>
    DefaultTableModel=新的DefaultTableModel(){
    @凌驾
    公共类getColumnClass(int-col){
    如果(列==1){
    返回Double.class;
    }
    返回字符串.class;
    }
    @凌驾
    public int getColumnCount(){
    返回2;
    }
    };
    JTable table=新的JTable(模型);
    
    谢谢,我不知道:)谢谢,我不知道:)
    private void jButton5ActionPerformed(java.awt.event.ActionEvent evt,Patient p) {
        try {
            for (int k = 0; k < Config.n; k++) {
                DBManager.save(p, k+1,(double)this.table.getValueAt(k, 1));
            }
       } catch (SQLException e) {
            System.out.println(e.getMessage());
        }
    }
    
    DefaultTableModel model = new DefaultTableModel(){
        @Override
        public Class<?> getColumnClass(int col){
            if ( col ==  1 ){
                return Double.class;
            }
            return String.class;
        }
        @Override
        public int getColumnCount(){
            return 2;
        }
    };
    JTable table = new JTable(model);