Bom dia!
Tenho que preencher uma TableView e estou fazendo o seguinte:
classe de dados:
public class Dados {
private String nome;
private String telefone;
//Metodos construtor
public Dados() {
}
public Dados(String nome, String telefone) {
this.nome = nome;
this.telefone = telefone;
}
//Metodos get set
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
}
//Classe sql
public class Sql {
//Metodo carrega lista
public List getList(){
List dados = new ArrayList<>();
Connection conexao = ConexaoDB.getConexao();
String sql = "SELECT * FROM tbcadastros";
try {
PreparedStatement smt = conexao.prepareStatement(sql);
ResultSet rs = smt.executeQuery();
while(rs.next()){
Dados dado = new Dados();
dado.setNome(rs.getString("nome"));
dado.setTelefone(rs.getString("Telefone"));
dados.add(dado);
}
ConexaoDB.close(conexao, smt, rs);
} catch (SQLException ex) {
System.out.println("Erro! Lista sem retorno");
return null;
}
return dados;
}
}
//Classe controller
public class Controle implements Initializable {
@FXML private TableView tabelaCadastros;
@FXML private TableColumn <Dados, String> tbcolNome;
@FXML private TableColumn <Dados, String> tbcolTelefone;
//inicia os controles da tela
@Override
public void initialize(URL url, ResourceBundle rb) {
carregaTabelaCadastros();
}
// metodo carrega banco na tabela
public void carregaTabelaCadastros() {
tbcolNome.setCellValueFactory(new PropertyValueFactory(“nome”));
tbcolTelefone.setCellValueFactory(new PropertyValueFactory(“telefone”));
tabelaCadastros.setItems(atualizaTabela());
}
//metodo carrega banco na tabela
public ObservableList atualizaTabela() {
Sql cadastros = new SqlL();
return FXCollections.observableArrayList(cadastros.getList());
}
}
Carrega a tela Abri o controle mas não carrega os dados. Retorna esse erro:
jul. 27, 2022 12:59:00 PM javafx.scene.control.cell.PropertyValueFactory getCellDataReflectively
WARNING: Can not retrieve property ‘nome’ in PropertyValueFactory: javafx.scene.control.cell.PropertyValueFactory@78b39387 with provided class type: class pacotes.Dados
java.lang.IllegalStateException: Cannot read from unreadable property nome
at javafx.base@18/com.sun.javafx.property.PropertyReference.get(PropertyReference.java:167)
at javafx.controls@18/javafx.scene.control.cell.PropertyValueFactory.getCellDataReflectively(PropertyValueFactory.java:184)
at javafx.controls@18/javafx.scene.control.cell.PropertyValueFactory.call(PropertyValueFactory.java:154)
at javafx.controls@18/javafx.scene.control.cell.PropertyValueFactory.call(PropertyValueFactory.java:133)
at javafx.controls@18/javafx.scene.control.TableColumn.getCellObservableValue(TableColumn.java:592)
at javafx.controls@18/javafx.scene.control.TableColumn.getCellObservableValue(TableColumn.java:577)
at javafx.controls@18/javafx.scene.control.TableCell.updateItem(TableCell.java:680)
at javafx.controls@18/javafx.scene.control.TableCell.indexChanged(TableCell.java:484)
at javafx.controls@18/javafx.scene.control.IndexedCell.updateIndex(IndexedCell.java:120)
at javafx.controls@18/javafx.scene.control.skin.TableRowSkinBase.updateCells(TableRowSkinBase.java:530)
at javafx.controls@18/javafx.scene.control.skin.TableRowSkinBase.(TableRowSkinBase.java:155)
at javafx.controls@18/javafx.scene.control.skin.TableRowSkin.(TableRowSkin.java:82)
at javafx.controls@18/javafx.scene.control.TableRow.createDefaultSkin(TableRow.java:213)
at javafx.controls@18/javafx.scene.control.Control.doProcessCSS(Control.java:899)
at javafx.controls@18/javafx.scene.control.Control$1.doProcessCSS(Control.java:89)
at javafx.controls@18/com.sun.javafx.scene.control.ControlHelper.processCSSImpl(ControlHelper.java:67)
at javafx.graphics@18/com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:146)
at javafx.graphics@18/javafx.scene.Parent.doProcessCSS(Parent.java:1400)
at javafx.graphics@18/javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
at javafx.graphics@18/com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
at javafx.graphics@18/com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:146)
at javafx.graphics@18/javafx.scene.Parent.doProcessCSS(Parent.java:1400)
at javafx.graphics@18/javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
at javafx.graphics@18/com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
at javafx.graphics@18/com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:146)
at javafx.graphics@18/javafx.scene.Node.processCSS(Node.java:9477)
at javafx.graphics@18/javafx.scene.Node.applyCss(Node.java:9564)
at javafx.controls@18/javafx.scene.control.skin.VirtualFlow.setCellIndex(VirtualFlow.java:1818)
at javafx.controls@18/javafx.scene.control.skin.VirtualFlow.getCell(VirtualFlow.java:1795)
at javafx.controls@18/javafx.scene.control.skin.VirtualFlow.getOrCreateCellSize(VirtualFlow.java:2970)
at javafx.controls@18/javafx.scene.control.skin.VirtualFlow.getOrCreateCellSize(VirtualFlow.java:2953)
at javafx.controls@18/javafx.scene.control.skin.VirtualFlow.recalculateAndImproveEstimatedSize(VirtualFlow.java:3025)
at javafx.controls@18/javafx.scene.control.skin.VirtualFlow.recalculateEstimatedSize(VirtualFlow.java:3017)
at javafx.controls@18/javafx.scene.control.skin.VirtualFlow$5.invalidated(VirtualFlow.java:860)
at javafx.base@18/javafx.beans.property.IntegerPropertyBase.markInvalid(IntegerPropertyBase.java:113)
at javafx.base@18/javafx.beans.property.IntegerPropertyBase.set(IntegerPropertyBase.java:148)
at javafx.controls@18/javafx.scene.control.skin.VirtualFlow.setCellCount(VirtualFlow.java:904)
at javafx.controls@18/javafx.scene.control.skin.TableViewSkinBase.updateItemCount(TableViewSkinBase.java:555)
at javafx.controls@18/javafx.scene.control.skin.TableViewSkin.(TableViewSkin.java:129)
at javafx.controls@18/javafx.scene.control.TableView.createDefaultSkin(TableView.java:1534)
at javafx.controls@18/javafx.scene.control.Control.doProcessCSS(Control.java:899)
at javafx.controls@18/javafx.scene.control.Control$1.doProcessCSS(Control.java:89)
at javafx.controls@18/com.sun.javafx.scene.control.ControlHelper.processCSSImpl(ControlHelper.java:67)
at javafx.graphics@18/com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:146)
at javafx.graphics@18/javafx.scene.Parent.doProcessCSS(Parent.java:1400)
at javafx.graphics@18/javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
at javafx.graphics@18/com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
at javafx.graphics@18/com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:146)
at javafx.graphics@18/javafx.scene.Parent.doProcessCSS(Parent.java:1400)
at javafx.graphics@18/javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
at javafx.graphics@18/com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
at javafx.graphics@18/com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:146)
at javafx.graphics@18/javafx.scene.Node.processCSS(Node.java:9477)
at javafx.graphics@18/javafx.scene.Scene.doCSSPass(Scene.java:572)
at javafx.graphics@18/javafx.scene.Scene.preferredSize(Scene.java:1770)
at javafx.graphics@18/javafx.scene.Scene$2.preferredSize(Scene.java:396)
at javafx.graphics@18/com.sun.javafx.scene.SceneHelper.preferredSize(SceneHelper.java:66)
at javafx.graphics@18/javafx.stage.Window$12.invalidated(Window.java:1163)
at javafx.base@18/javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:110)
at javafx.base@18/javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:145)
at javafx.graphics@18/javafx.stage.Window.setShowing(Window.java:1239)
at javafx.graphics@18/javafx.stage.Window.show(Window.java:1254)
at javafx.graphics@18/javafx.stage.Stage.show(Stage.java:277)
at br.com.kimsoftwares.classes.CadastroGuarda.start(Cadastro.java:26)
at javafx.graphics@18/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:847)
at javafx.graphics@18/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:484)
at javafx.graphics@18/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:457)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at javafx.graphics@18/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:456)
at javafx.graphics@18/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
at javafx.graphics@18/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics@18/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:184)
at java.base/java.lang.Thread.run(Thread.java:833)