我认为这个问题就像你忘记了代码中的分号一样。我创建了一个要在tableview中显示的列表,但只有一个项目
nombrepaciente
我没有得到,我也不知道为什么mi table没有显示该项目。
这是我的豆
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>
我错过了什么吗?
答案 0 :(得分:1)
传递给PropertyValueFactory的值不正确:它需要匹配get ...()方法。
即。你需要
clnNombrePaciente.setCellValueFactory(new PropertyValueFactory<CitaBeanTable, String>("nombrePaciente"));
(大写&#34; P&#34;)。