Como fazer observableArrayList carregar uma tableview Altomaticamente

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?> `