TableView не отображаются данные - Java

Узнай цену своей работы

Формулировка задачи:

Подскажите, что не так Вот код контроллера основного окна
Листинг программы
  1. package sample.Controllers;
  2. import javafx.collections.FXCollections;
  3. import javafx.collections.ListChangeListener;
  4. import javafx.collections.ObservableList;
  5. import javafx.event.ActionEvent;
  6. import javafx.fxml.FXML;
  7. import javafx.fxml.FXMLLoader;
  8. import javafx.scene.Node;
  9. import javafx.scene.Parent;
  10. import javafx.scene.Scene;
  11. import javafx.scene.control.*;
  12. import javafx.scene.control.cell.PropertyValueFactory;
  13. import javafx.stage.Modality;
  14. import javafx.stage.Stage;
  15. import javafx.stage.Window;
  16. import sample.Interfaces.impls.CollectionFunctional;
  17. import sample.Objects.Person;
  18. import java.io.IOException;
  19. public class mainController {
  20. private CollectionFunctional adressBookColl = new CollectionFunctional();
  21. @FXML
  22. private Button btnAdd;
  23. @FXML
  24. private Button btnChange;
  25. @FXML
  26. private Button btnDelete;
  27. @FXML
  28. private Button btnSearch;
  29. @FXML
  30. private TextField txtSearch;
  31. @FXML
  32. private TableView<Person> tbl;
  33. @FXML
  34. private TableColumn<Person, String> columnPhone;
  35. @FXML
  36. private TableColumn<Person, String> columnLastName;
  37. @FXML
  38. private TableColumn<Person, String> columnAdress;
  39. @FXML
  40. private Label lblNumNote;
  41. private Parent fxmlEdit;
  42. private FXMLLoader fxmlLoader = new FXMLLoader();
  43. private EditDialogController editDialogController;
  44. private Stage editDialogStage;
  45. @FXML
  46. private void initialize(){
  47. columnAdress.setCellValueFactory(new PropertyValueFactory<Person, String>("adress"));
  48. columnLastName.setCellValueFactory(new PropertyValueFactory<Person, String>("lastName"));
  49. columnPhone.setCellValueFactory(new PropertyValueFactory<Person, String>("phone"));
  50.  
  51. adressBookColl.getPersonList().addListener(new ListChangeListener<Person>() {
  52. @Override
  53. public void onChanged(Change<? extends Person> c) {
  54. updateCountLabel();
  55. }
  56. });
  57. adressBookColl.fillCollection();
  58. tbl.setItems(adressBookColl.getPersonList());
  59. try{
  60. fxmlLoader.setLocation(getClass().getResource("../fxml/adw.fxml"));
  61. fxmlEdit = fxmlLoader.load();
  62. editDialogController = fxmlLoader.getController();
  63. } catch (IOException e) {
  64. e.printStackTrace();
  65. }
  66. }
  67.  
  68. private void updateCountLabel(){
  69. lblNumNote.setText("Количество записей: " + adressBookColl.getPersonList().size());
  70. }
  71. @FXML
  72. public void actionButtonPressed(ActionEvent event){
  73. Object source = event.getSource();
  74. if (!(source instanceof Button)){
  75. return;
  76. }
  77. Button selectedButton = (Button) source;
  78. Person selectedPerson = tbl.getSelectionModel().getSelectedItem();
  79. Window parentWindow = ((Node)event.getSource()).getScene().getWindow();
  80. editDialogController.setPerson(selectedPerson);
  81. switch(selectedButton.getId()){
  82. case "btnAdd":{
  83. }
  84. break;
  85. case "btnChange":{
  86. showDialog(parentWindow);
  87. }
  88. break;
  89. case "btnDelete":{
  90. }
  91. break;
  92. }
  93. }
  94. private void showDialog(Window parentWindow){
  95. if (editDialogStage == null) {
  96. editDialogStage = new Stage();
  97. editDialogStage.setTitle("ADW");
  98. editDialogStage.setMinHeight(150);
  99. editDialogStage.setMinWidth(300);
  100. editDialogStage.setResizable(false);
  101. editDialogStage.setScene(new Scene(fxmlEdit));
  102. editDialogStage.initModality(Modality.WINDOW_MODAL);
  103. editDialogStage.initOwner(parentWindow);
  104. }
  105. editDialogStage.show();
  106. }
  107. }
Когда я запускаю программу в таблице показывается только серый фон. Сами данные загружаются и создается ObservebleList. Что делать??

Решение задачи: «TableView не отображаются данные»

textual
Листинг программы
  1. package sample.Objects;
  2.  
  3. import javafx.beans.property.SimpleStringProperty;
  4.  
  5. /**
  6.  * Created by Akella266 on 07.07.2016.
  7.  */
  8. public class Person {
  9.  
  10.     private SimpleStringProperty phone = new SimpleStringProperty("");
  11.     private SimpleStringProperty lastName = new SimpleStringProperty("");
  12.     private SimpleStringProperty adress = new SimpleStringProperty("");
  13.  
  14.  
  15.  
  16.     public Person() {
  17.     }
  18.  
  19.     public Person(String phone, String lastName, String adress) {
  20.         this.phone.set(phone);
  21.         this.lastName.set(lastName);
  22.         this.adress.set(adress);
  23.     }
  24.  
  25.     public String getPhone() {
  26.  
  27.         return phone.get();
  28.     }
  29.  
  30.     public SimpleStringProperty phoneProperty() {
  31.         return phone;
  32.     }
  33.  
  34.     public void setPhone(String phone) {
  35.         this.phone.set(phone);
  36.     }
  37.  
  38.     public String getLastName() {
  39.         return lastName.get();
  40.     }
  41.  
  42.     public SimpleStringProperty lastNameProperty() {
  43.         return lastName;
  44.     }
  45.  
  46.     public void setLastName(String lastName) {
  47.         this.lastName.set(lastName);
  48.     }
  49.  
  50.     public String getAdress() {
  51.         return adress.get();
  52.     }
  53.  
  54.     public SimpleStringProperty adressProperty() {
  55.         return adress;
  56.     }
  57.  
  58.     public void setAdress(String adress) {
  59.         this.adress.set(adress);
  60.     }
  61.  
  62.     @Override
  63.     public String toString() {
  64.         return "Person{" +
  65.                "phone=" + phone.get() +
  66.                 ", lastName='" + lastName.get() + '\'' +
  67.                 ", adress='" + adress.get() + '\'' +
  68.                 '}';
  69.     }
  70.  
  71.  
  72. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы