TableView не отображаются данные - Java
Формулировка задачи:
Подскажите, что не так Вот код контроллера основного окна
Когда я запускаю программу в таблице показывается только серый фон. Сами данные загружаются и создается ObservebleList. Что делать??
Листинг программы
- package sample.Controllers;
- import javafx.collections.FXCollections;
- import javafx.collections.ListChangeListener;
- import javafx.collections.ObservableList;
- import javafx.event.ActionEvent;
- import javafx.fxml.FXML;
- import javafx.fxml.FXMLLoader;
- import javafx.scene.Node;
- import javafx.scene.Parent;
- import javafx.scene.Scene;
- import javafx.scene.control.*;
- import javafx.scene.control.cell.PropertyValueFactory;
- import javafx.stage.Modality;
- import javafx.stage.Stage;
- import javafx.stage.Window;
- import sample.Interfaces.impls.CollectionFunctional;
- import sample.Objects.Person;
- import java.io.IOException;
- public class mainController {
- private CollectionFunctional adressBookColl = new CollectionFunctional();
- @FXML
- private Button btnAdd;
- @FXML
- private Button btnChange;
- @FXML
- private Button btnDelete;
- @FXML
- private Button btnSearch;
- @FXML
- private TextField txtSearch;
- @FXML
- private TableView<Person> tbl;
- @FXML
- private TableColumn<Person, String> columnPhone;
- @FXML
- private TableColumn<Person, String> columnLastName;
- @FXML
- private TableColumn<Person, String> columnAdress;
- @FXML
- private Label lblNumNote;
- private Parent fxmlEdit;
- private FXMLLoader fxmlLoader = new FXMLLoader();
- private EditDialogController editDialogController;
- private Stage editDialogStage;
- @FXML
- private void initialize(){
- columnAdress.setCellValueFactory(new PropertyValueFactory<Person, String>("adress"));
- columnLastName.setCellValueFactory(new PropertyValueFactory<Person, String>("lastName"));
- columnPhone.setCellValueFactory(new PropertyValueFactory<Person, String>("phone"));
- adressBookColl.getPersonList().addListener(new ListChangeListener<Person>() {
- @Override
- public void onChanged(Change<? extends Person> c) {
- updateCountLabel();
- }
- });
- adressBookColl.fillCollection();
- tbl.setItems(adressBookColl.getPersonList());
- try{
- fxmlLoader.setLocation(getClass().getResource("../fxml/adw.fxml"));
- fxmlEdit = fxmlLoader.load();
- editDialogController = fxmlLoader.getController();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- private void updateCountLabel(){
- lblNumNote.setText("Количество записей: " + adressBookColl.getPersonList().size());
- }
- @FXML
- public void actionButtonPressed(ActionEvent event){
- Object source = event.getSource();
- if (!(source instanceof Button)){
- return;
- }
- Button selectedButton = (Button) source;
- Person selectedPerson = tbl.getSelectionModel().getSelectedItem();
- Window parentWindow = ((Node)event.getSource()).getScene().getWindow();
- editDialogController.setPerson(selectedPerson);
- switch(selectedButton.getId()){
- case "btnAdd":{
- }
- break;
- case "btnChange":{
- showDialog(parentWindow);
- }
- break;
- case "btnDelete":{
- }
- break;
- }
- }
- private void showDialog(Window parentWindow){
- if (editDialogStage == null) {
- editDialogStage = new Stage();
- editDialogStage.setTitle("ADW");
- editDialogStage.setMinHeight(150);
- editDialogStage.setMinWidth(300);
- editDialogStage.setResizable(false);
- editDialogStage.setScene(new Scene(fxmlEdit));
- editDialogStage.initModality(Modality.WINDOW_MODAL);
- editDialogStage.initOwner(parentWindow);
- }
- editDialogStage.show();
- }
- }
Решение задачи: «TableView не отображаются данные»
textual
Листинг программы
- package sample.Objects;
- import javafx.beans.property.SimpleStringProperty;
- /**
- * Created by Akella266 on 07.07.2016.
- */
- public class Person {
- private SimpleStringProperty phone = new SimpleStringProperty("");
- private SimpleStringProperty lastName = new SimpleStringProperty("");
- private SimpleStringProperty adress = new SimpleStringProperty("");
- public Person() {
- }
- public Person(String phone, String lastName, String adress) {
- this.phone.set(phone);
- this.lastName.set(lastName);
- this.adress.set(adress);
- }
- public String getPhone() {
- return phone.get();
- }
- public SimpleStringProperty phoneProperty() {
- return phone;
- }
- public void setPhone(String phone) {
- this.phone.set(phone);
- }
- public String getLastName() {
- return lastName.get();
- }
- public SimpleStringProperty lastNameProperty() {
- return lastName;
- }
- public void setLastName(String lastName) {
- this.lastName.set(lastName);
- }
- public String getAdress() {
- return adress.get();
- }
- public SimpleStringProperty adressProperty() {
- return adress;
- }
- public void setAdress(String adress) {
- this.adress.set(adress);
- }
- @Override
- public String toString() {
- return "Person{" +
- "phone=" + phone.get() +
- ", lastName='" + lastName.get() + '\'' +
- ", adress='" + adress.get() + '\'' +
- '}';
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д