2016-07-05 1 views
0

Я пытаюсь показать combobox для каждой записи, которая извлекается из базы данных, но, к сожалению, я не могу получить никаких комбобокс в ожидаемом столбце.Не удается получить ComboboxTableCell в приложении javafx

Вот код для моего класса модели:

public class Employee { 
    private final int id; 
    private final SimpleStringProperty ename; 
    private final SimpleStringProperty ecnic; 
    private final SimpleDoubleProperty ebalance; 
    private final SimpleDoubleProperty etotalpaid; 
    private SimpleStringProperty estatus; 
    public Employee(int id, String ename, String ecnic, Double ebalance, 
      Double etotalpaid, String estatus) { 
     super(); 
     this.id = id; 
     this.ename = new SimpleStringProperty(ename); 
     this.ecnic = new SimpleStringProperty(ecnic); 
     this.ebalance = new SimpleDoubleProperty(ebalance); 
     this.etotalpaid = new SimpleDoubleProperty(etotalpaid); 
     this.estatus = new SimpleStringProperty(estatus); 
    } 
    public String getEstatusproperty() { 
     return estatus.get(); 
    } 
    public String getEstatus() { 
     return estatus.get(); 
    } 
    public void setEstatus(String estatus) { 
     this.estatus = new SimpleStringProperty(estatus); 
    } 
    public int getId() { 
     return id; 
    } 
    public String getEname() { 
     return ename.get(); 
    } 
    public String getEcnic() { 
     return ecnic.get(); 
    } 
    public Double getEbalance() { 
     return ebalance.get(); 
    } 
    public Double getEtotalpaid() { 
     return etotalpaid.get(); 
    } 
} 

Вот код для моего метода, который я называю для извлечения данных из базы данных ..

public void attendence() throws SQLException{ 
     employeelist = FXCollections.observableArrayList(); 
     ename.setCellValueFactory(new PropertyValueFactory<Employee,String>("ename")); 
     ecnic.setCellValueFactory(new PropertyValueFactory<Employee,String>("ecnic")); 
     ebalance.setCellValueFactory(new PropertyValueFactory<Employee,Double>("ebalance")); 
     etotalpaid.setCellValueFactory(new PropertyValueFactory<Employee,Double>("etotalpaid")); 
     estatus.setCellValueFactory(new PropertyValueFactory<Employee,String>("estatus")); 
     estatus.setCellFactory(ComboBoxTableCell.forTableColumn(new DefaultStringConverter(), attendenceoptions)); 
     estatus.setOnEditCommit(
       new EventHandler<CellEditEvent<Employee, String>>() { 
        @Override 
        public void handle(CellEditEvent<Employee, String> t) { 
         ((Employee) t.getTableView().getItems().get(t.getTablePosition().getRow())).setEstatus(t.getNewValue()); 
        }; 
     }); 
     estatus.setEditable(true); 
     stmt = conn.createStatement(); 
     sql = "select * from employe"; 
     rs = stmt.executeQuery(sql); 
     while(rs.next()){ 
      employeelist.add(new Employee(rs.getInt(1),rs.getString(2),rs.getString(3),rs.getDouble(5),rs.getDouble(6),"Present")); 
      employeetable.setItems(employeelist); 
     } 
     stmt.close(); 
     rs.close(); 
    } 
} 
+0

Отображаются ли как табличный вид, так и столбец таблицы? – Itai

+0

Обратите внимание, что ComboBox будет отображаться только при запуске редактирования значения. –

+0

Моя таблица не была настроена для редактирования ... я установил ее для редактирования, она работает! –

ответ

0

Добавлено это метод, чтобы решить проблему.

employeetable.setEditable(true); 

 Смежные вопросы

  • Нет связанных вопросов^_^