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
`