在表格视图上显示数据的问题

时间:2019-11-08 14:44:49

标签: java javafx tableview

我正在尝试在表视图上显示一些数据,但是它保持空白。 我正在从一个arrayList的人中搜索。 因此,我需要显示具有“ CPF”等于输入(TextField)的人的所有数据(CPF,ID,姓名,城市和出生日期),但我的表视图保持空白。

我只使用javaFX,而没有FXML。

我正在读取包含所有人员数据的.csv档案,将其转换为对象人员,然后填充人员列表。

我已经在阅读档案,但是我有很多麻烦要在表上显示数据。

  public class Layout extends Application{
    InputFileProcess processarArquivo = new InputFileProcess();
    ArvoreIndexadaCpf arvoreIndexadaCpf = new ArvoreIndexadaCpf();
    ArvoreIndexadaNome arvoreIndexadaNome = new ArvoreIndexadaNome();
    ArvoreIndexadaData ArvoreIndexadaData = new ArvoreIndexadaData();

@Override
public void start(Stage primaryStage) throws Exception {
      primaryStage.setTitle("Leitor de arquivo e busca em árvore AVL");
      Group root = new Group();
      Scene scene = new Scene(root, 800, 600, Color.GRAY);

      TabPane tabPane = new TabPane();
      BorderPane mainPane = new BorderPane();
      Tab tabProcurarCpf = new Tab();
      tabProcurarCpf.setText("Procurar por CPF");

      BorderPane borderPaneCpf = new BorderPane();
      borderPaneCpf.setPadding(new Insets(10));
      Label labelCpf = new Label("Digite o cpf");
      TextField textCpf = new TextField();
      Button buttonCpf = new Button("Buscar CPF");

      TableView<Pessoa> tableViewCpf = new TableView<Pessoa>();
      TableColumn cpf = new TableColumn("CPF");
      TableColumn rg = new TableColumn("RG");
      TableColumn nome = new TableColumn("Nome");
      TableColumn dataNascimento = new TableColumn("Data de nascimento");
      TableColumn cidade = new TableColumn("Cidade");

      ObservableList<Pessoa> pessoas = FXCollections.observableArrayList();

      buttonCpf.setOnAction(new EventHandler<ActionEvent>() {

        @Override
        public void handle(ActionEvent event) {
            Long cpfLong = Long.parseLong(textCpf.getText());
            pessoas.addAll(arvoreIndexadaCpf.buscarCPF(cpfLong));
        }

      });

      tableViewCpf.setItems(pessoas);
      tableViewCpf.getColumns().addAll(cpf, rg, nome, dataNascimento, cidade);

      HBox hboxCpf = new HBox(10);
      hboxCpf.setPadding(new Insets(10, 0, 0, 0));
      hboxCpf.setAlignment(Pos.CENTER);
      hboxCpf.getChildren().addAll(labelCpf, textCpf, buttonCpf);

      StackPane tabCpfPane = new StackPane();
      tabCpfPane.setAlignment(Pos.CENTER);

      VBox intro2 = new VBox(5);
        //controles de aprarência
      intro2.setAlignment(Pos.CENTER);

      intro2.getChildren().addAll(labelCpf, buttonCpf, hboxCpf, tableViewCpf);

      borderPane.setTop(intro2);


      tabCpfPane.getChildren().addAll(intro2);
      tabProcurarCpf.setContent(tabCpfPane);
      tabPane.getTabs().add(tabProcurarCpf);

      mainPane.setCenter(tabPane);

      mainPane.prefHeightProperty().bind(scene.heightProperty());
      mainPane.prefWidthProperty().bind(scene.widthProperty());

      root.getChildren().add(mainPane);
      primaryStage.setScene(scene);
      primaryStage.show();
}

arvoreIndexadaCpf.buscarCPF(cpfLong)返回人员列表。 从此列表中,我需要获取该人的数据并显示在我的TableView上。

0 个答案:

没有答案