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() + '\'' + '}'; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д