TableView - не отображаются данные - Java
Формулировка задачи:
Класс Controller
Класс Bell
Суть вопроса: когда я вбиваю данные в TextField, выбираю значения в ComboBox'ах и нажимаю на кнопку. При нажатии кнопки происходит действие creatBell. createBell обрабатывает все данные и заносит их в таблицу, но загвоздка в том, что новая строка создается, но данные в строках не появляются. Что с этим делать?
Листинг программы
- import javafx.collections.FXCollections;
- import javafx.collections.ObservableList;
- import javafx.fxml.FXML;
- import javafx.fxml.Initializable;
- import javafx.scene.control.*;
- import javafx.scene.control.cell.PropertyValueFactory;
- import javafx.scene.layout.Pane;
- import java.net.URL;
- import java.util.ResourceBundle;
- import java.util.Scanner;
- public class Controller implements Initializable {
- @FXML
- private TextField textFieldName;
- @FXML
- private Pane mainPane;
- @FXML
- private TabPane setPane;
- @FXML
- private Button createBell;
- @FXML
- private ComboBox comboDay;
- @FXML
- private ComboBox comboHour;
- @FXML
- private ComboBox comboMinute;
- @FXML
- private TableView<Bell> tableList;
- @FXML
- private TableColumn<Bell, String> columnName;
- @FXML
- private TableColumn<Bell, String> columnTime;
- @FXML
- private TableColumn<Bell, String> columnDay;
- public static int getInt(String set) {
- Scanner sc = new Scanner(set);
- String text = sc.nextLine();
- char[] chars = text.toCharArray();
- String result = String.valueOf(chars[0]) + String.valueOf(chars[1]);
- return Integer.parseInt(result);
- }
- public void createBell() {
- String name = textFieldName.getText();
- String day = (String) comboDay.getValue();
- int hour = getInt((String) comboHour.getValue());
- int minute = getInt((String) comboMinute.getValue());
- String time = String.valueOf(hour) + ":" + String.valueOf(minute);
- bellData.add(new Bell(name,day,time));
- tableList.setItems(bellData);
- setPane.setVisible(false);
- mainPane.setVisible(true);
- }
- ObservableList<Bell> bellData = FXCollections.observableArrayList();
- @Override
- public void initialize(URL location, ResourceBundle resources) {
- columnName.setCellValueFactory(new PropertyValueFactory<Bell, String>("columnName"));
- columnDay.setCellValueFactory(new PropertyValueFactory<Bell, String>("columnDay"));
- columnTime.setCellValueFactory(new PropertyValueFactory<Bell, String>("columnTime"));
- }
- }
Листинг программы
- public class Bell {
- private String name;
- private String day;
- private String time;
- public Bell(String name, String day, String time) {
- this.name = name;
- this.day = day;
- this.time = time;
- }
- public String getName() {
- return name;
- }
- public String getDay() {
- return day;
- }
- public String getTime() {
- return time;
- }
- public void setName(String name) {
- this.name = name;
- }
- public void setDay(String day) {
- this.day = day;
- }
- public void setTime(String time) {
- this.time = time;
- }
- }
Решение задачи: «TableView - не отображаются данные»
textual
Листинг программы
- @Override
- public void initialize(URL location, ResourceBundle resources) {
- columnName.setCellValueFactory(new PropertyValueFactory<Bell, String>("name"));
- columnDay.setCellValueFactory(new PropertyValueFactory<Bell, String>("day"));
- columnTime.setCellValueFactory(new PropertyValueFactory<Bell, String>("time"));
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д