Como fazer observableArrayList carregar uma tableview Altomaticamente

0 respostas
java
IsaelCoelho

Bom dia gente.
Estou com uma dificuldade em fazer uma uma tableView ser populada automaticamente ao ser aberto a tela onde ela se encontra e quando um dado é gravada no banco exemplo:
quero quer quando eu abrir a view Estado a tableview já venha com os dados armazenados anteriormente no banco(Consegui fazer isso mas apenas com um actonEvent em um botão, ou seja a tabela inicia vazia e quando executo o evento ela se preenche), e também quando um novo dado for lançando ele seja atualizada para o usuário. segue a classe controle e a view:

`

import java.net.URL;

import java.util.List;

import java.util.ResourceBundle;

import javax.swing.JOptionPane;

import br.com.sisfrota.DAO.EstadoDAO;

import br.com.sisfrota.domain.Estado;

import javafx.collections.FXCollections;

import javafx.collections.ObservableList;

import javafx.event.ActionEvent;

import javafx.fxml.FXML;

import javafx.fxml.Initializable;

import javafx.scene.control.Button;

import javafx.scene.control.TableColumn;

import javafx.scene.control.TableView;

import javafx.scene.control.TextField;

import javafx.scene.control.cell.PropertyValueFactory;
public class EstadoController implements Initializable {

@FXML

private TextField txtEstado;

@FXML

private TextField txtSigla;

@FXML

private Button btSalvar, btEditar, btCancelar, btDeletar;

@FXML

private TableView tblEstado;

@FXML

private TableColumn<Estado, String> Nome;

@FXML

private TableColumn<Estado, String> Sigla;
@Override
public void initialize(URL url, ResourceBundle bundle) {

}

// gravar dados no banco
@FXML
protected void testarAction(ActionEvent event) {
    Estado estado = new Estado();
    estado.setNome(txtEstado.getText());
    estado.setSigla(txtSigla.getText());

    EstadoDAO dao = new EstadoDAO();
    dao.salvar(estado);
    PopularTableview(event);
            
}

// prenceher tabela
@FXML
protected void PopularTableview(ActionEvent event) {
    EstadoDAO dao = new EstadoDAO();
    List estados = dao.Listar();

    Nome.setCellValueFactory(new PropertyValueFactory<>("Nome"));
    Sigla.setCellValueFactory(new PropertyValueFactory<>("Sigla"));

    tblEstado.setItems(FXCollections.observableArrayList(estados));

}

}`

minha view
`

<?xml version="1.0" encoding="UTF-8"?> <?import javafx.scene.control.Button?> <?import javafx.scene.control.Label?> <?import javafx.scene.control.TableColumn?> <?import javafx.scene.control.TableView?> <?import javafx.scene.control.TextField?> <?import javafx.scene.layout.AnchorPane?> `
Criado 22 de março de 2016
Respostas 0
Participantes 1