在Javafx中更改组合框的值时显示为类强制转换异常的错误

时间:2016-10-28 06:20:21

标签: javafx

在选择Tableview行时,它显示组合框中的数据, 我尝试使用此代码在tableview中显示comboxbox中的值。

private void showInputDetails(InputConfigurationModel ipmodel) {

        if (ipmodel != null) {
            cmbfiletype.setValue(ipmodel.getFiletype().toString());           
    }

我的输入配置模型类:

public class InputConfigurationModel {

        public StringProperty filetype = new SimpleStringProperty();    
        public InputConfigurationModel(String filetype) {

            this.filetype = new SimpleStringProperty(filetype);
        }

        public InputConfigurationModel() {
        }

        public String getFiletype() {
            return filetype.get();
        }

        public void setFiletype(String value) {
            filetype.set(value);
        }

        public StringProperty filetypeProperty()
        {
            return filetype;
        }

    //    @Override
    //    public String toString() {
    //        return filetype.toString(); //To change body of generated methods, choose Tools | Templates.
    //    }                       
    }  

但如果我尝试更改组合框的值以进行更新,则显示错误为 线程中的异常" JavaFX应用程序线程" java.lang.ClassCastException:java.lang.String无法强制转换为Clover.Converter.Model.ExtensionModel

我正在尝试从此代码中更改组合框中的值

加载文件方法

加载组合框值
    public void LoadFile() {

    try {

    String sql = "select * from EXTENSION";
    PreparedStatement ps = conn.prepareStatement(sql);
    rs = ps.executeQuery(sql);
    while (rs.next()) {
    ExtensionModel extModel = new ExtensionModel();
    filetypelstupdate_ip = FXCollections.observableArrayList(extModel);
    String ext_type = rs.getString("EXT_TYPE");
    String ext_name = rs.getString("EXT_NAME");
    int ext_id=Integer.parseInt(rs.getString("EXT_ID"));
    extModel.setExttype(ext_type);
    extModel.setExtname(ext_name);
    extModel.setExtid(ext_id);
    cmbfiletype.getItems().addAll(filetypelstupdate_ip); 

        cmbfiletype.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<ExtensionModel>() {
        @Override
        public void changed(ObservableValue<? extends ExtensionModel> observable, ExtensionModel oldValue, ExtensionModel newValue) {                    
               aaa(newValue);   

        }
    });

    catch (Exception ex) {
    ex.printStackTrace();
   }

}
        public void aaa(ExtensionModel exm){

         if(cmbfiletype!=null)
        {       
            txtextid.setText(exm.getExtid().toString());
            System.out.println("txtextid"+txtextid);
        }

    }

我不知道如何解决这个错误?尝试了一切,但仍然出现了阶级演员异常

我的错误出现在此代码第一行的 LoadFile 方法

**cmbfiletype.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<ExtensionModel>() {**
        @Override
        public void changed(ObservableValue<? extends ExtensionModel> observable, ExtensionModel oldValue, ExtensionModel newValue) {

            aaa(newValue);           

    });

    }
    } catch (Exception e) {
    e.printStackTrace();
   }

首先它从tableview中显示comboxbox中的值,这是 INPUTCONFIGURATION 模型类中的字符串,我尝试更改来自LoadFile方法的组合框值,因此它来自类施放异常。请帮我解决这个类强制转换异常错误。

0 个答案:

没有答案