2014-04-07 4 views
0

Я думаю, что эта проблема возникает, когда вы забыли точку с запятой в коде. Я создаю список, чтобы показать в Tableview, но есть только один пунктJavaFX и TableView от SceneBuilder

nombrepaciente

, что я не получаю, и я не знаю, почему мили таблица не показывая, что пункт.

Вот мой боб

public class CitaBeanTable { 

    public SimpleStringProperty nombrepaciente = new SimpleStringProperty(); 
    public SimpleStringProperty hora =  new SimpleStringProperty(); 
    public SimpleStringProperty estado = new SimpleStringProperty(); 
    public SimpleStringProperty notas = new SimpleStringProperty(); 

    public String getHora() { 
     return hora.get(); 
    } 
    public String getEstado() { 
     return estado.get(); 
    } 
    public String getNotas() { 
     return notas.get(); 
    } 
    public String getNombrePaciente() { 
     return nombrepaciente.get(); 
    } 

} 

Вот мой контроллер

public class CitasController implements Initializable { 

    @FXML private TableView<CitaBeanTable> tblCitas; 
    @FXML private TableColumn clnNombrePaciente; 
    @FXML private TableColumn clnHora; 
    @FXML private TableColumn clnEstado; 
    @FXML private TableColumn clnNotas; 
    ObservableList<CitaBeanTable> citasObservable; 


    private final ListChangeListener<CitaBeanTable> selectorTableCita = 
     new ListChangeListener<CitaBeanTable>() { 

     @Override 
     public void onChanged(ListChangeListener.Change<? extends CitaBeanTable> change) { 
     ponerCitaSeleccionada(); 
     } 
    }; 

    private void ponerCitaSeleccionada() { 
    //Do Something. 
    } 

    public CitaBeanTable getTablaCitaSeleccionada() { 

     if (tblCitas != null) { 

      List<CitaBeanTable> tabla = 
       tblCitas.getSelectionModel().getSelectedItems(); 

      if(tabla.size() == 1) { 
      final CitaBeanTable competicionSeleccionada = tabla.get(0); 
      return competicionSeleccionada; 
      } 
     } 
     return null; 
    } 

    private void inicializarTablaCitas(){ 

    clnNombrePaciente.setCellValueFactory(new PropertyValueFactory<CitaBeanTable, String>("nombrepaciente")); 
    clnHora.setCellValueFactory(new PropertyValueFactory<CitaBeanTable, String>("hora")); 
    clnEstado.setCellValueFactory(new PropertyValueFactory<CitaBeanTable, String>("estado")); 
    clnNotas.setCellValueFactory(new PropertyValueFactory<CitaBeanTable, String>("notas")); 

    citasObservable = FXCollections.observableArrayList(); 
    tblCitas.setItems(citasObservable); 

    } 

    @Override 
    public void initialize(URL url, ResourceBundle rb) { 

     this.inicializarTablaCitas(); 

     final ObservableList<CitaBeanTable> tablaCitaSel = 
      tblCitas.getSelectionModel().getSelectedItems(); 
     tablaCitaSel.addListener(selectorTableCita); 

     List<CitaBean> arregloCitas = new ArrayList(); 
     XMLParserCita xmlParser = new XMLParserCita(); 
     XMLParserPaciente xmlParserPaciente = new XMLParserPaciente(); 

     try { 

     arregloCitas = xmlParser.getCitasPorFecha(datePicker.getValue().toString()); 

     for (int i=0; i<arregloCitas.size(); i++) { 

      CitaBeanTable citaTable = new CitaBeanTable(); 

      // This method is working fine. 
      citaTable.nombrepaciente. 
       set(xmlParserPaciente. 
       getNombrePacientePorCodigo(arregloCitas.get(i). 
       getCodigopaciente().toString())); 

      citaTable.hora.set(arregloCitas.get(i).getHora()); 
      citaTable.estado.set(arregloCitas.get(i).getEstado()); 
      citaTable.notas.set(arregloCitas.get(i).getNotas()); 

      citasObservable.add(citaTable); 
     } 

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

Вот мой FXML:

<TableView fx:id="tblCitas"> 
    <columns> 
      <TableColumn prefWidth="251.0" text="Paciente" fx:id="clnNombrePaciente" /> 
      <TableColumn prefWidth="75.0" text="Hora" fx:id="clnHora" /> 
      <TableColumn prefWidth="184.0" text="Estado" fx:id="clnEstado" /> 
      <TableColumn prefWidth="180.0" text="Notas" fx:id="clnNotas" /> 
    </columns> 
</TableView> 

Am Я чего-то не хватает?

ответ

1

Значение, которое вы передаете в PropertyValueFactory, неверно: оно должно соответствовать методу get ...().

I.e. вам необходимо

clnNombrePaciente.setCellValueFactory(new PropertyValueFactory<CitaBeanTable, String>("nombrePaciente")); 

(с верхним регистром «P»).

+0

Извините, я забыл эту строку, когда я печатал свой вопрос. – RicardoGonzales

+0

Это действительно странно, я вижу переменную «час» в моем списке. На самом деле у меня есть еще 4, и каждая переменная отображается на столе, работая очень хорошо! Но мое значение переменной «name» не существует :-( – RicardoGonzales

+0

Скорее всего, причина в том, что ваша собственность в PropertyValueFactory не соответствует методу getXXX. Но поскольку вы вводите вопрос независимо от вашего фактического кода, это в значительной степени невозможно. –

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