gpt4 book ai didi

SceneBuilder 中的 JavaFX 和 TableView

转载 作者:行者123 更新时间:2023-12-01 13:10:23 24 4
gpt4 key购买 nike

我认为这个问题就像你忘记了代码中的分号一样。我正在创建一个列表以在表格 View 中显示,但只有一个项目

nombrepaciente

我没有得到,我不知道为什么 mi 表不只显示该项目。

这是我的 bean

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();
}

}

这是我的 Controller

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>

我错过了什么吗?

最佳答案

您传递到 PropertyValueFactory 的值不正确:它需要与 get...() 方法匹配。

即你需要

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

(带有大写“P”)。

关于SceneBuilder 中的 JavaFX 和 TableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22916711/

24 4 0
文章推荐: c++ - Constexpr 行列式(二维 std::array)
文章推荐: Java 7 - Files.copy 复制空文件
文章推荐: java - 解析数据时出错 org.json.JSONException : Value