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

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

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

Класс Controller
Листинг программы
  1. import javafx.collections.FXCollections;
  2. import javafx.collections.ObservableList;
  3. import javafx.fxml.FXML;
  4. import javafx.fxml.Initializable;
  5. import javafx.scene.control.*;
  6. import javafx.scene.control.cell.PropertyValueFactory;
  7. import javafx.scene.layout.Pane;
  8. import java.net.URL;
  9. import java.util.ResourceBundle;
  10. import java.util.Scanner;
  11. public class Controller implements Initializable {
  12. @FXML
  13. private TextField textFieldName;
  14. @FXML
  15. private Pane mainPane;
  16. @FXML
  17. private TabPane setPane;
  18. @FXML
  19. private Button createBell;
  20. @FXML
  21. private ComboBox comboDay;
  22. @FXML
  23. private ComboBox comboHour;
  24. @FXML
  25. private ComboBox comboMinute;
  26. @FXML
  27. private TableView<Bell> tableList;
  28. @FXML
  29. private TableColumn<Bell, String> columnName;
  30. @FXML
  31. private TableColumn<Bell, String> columnTime;
  32. @FXML
  33. private TableColumn<Bell, String> columnDay;
  34. public static int getInt(String set) {
  35. Scanner sc = new Scanner(set);
  36. String text = sc.nextLine();
  37. char[] chars = text.toCharArray();
  38. String result = String.valueOf(chars[0]) + String.valueOf(chars[1]);
  39. return Integer.parseInt(result);
  40. }
  41. public void createBell() {
  42. String name = textFieldName.getText();
  43. String day = (String) comboDay.getValue();
  44. int hour = getInt((String) comboHour.getValue());
  45. int minute = getInt((String) comboMinute.getValue());
  46. String time = String.valueOf(hour) + ":" + String.valueOf(minute);
  47. bellData.add(new Bell(name,day,time));
  48. tableList.setItems(bellData);
  49. setPane.setVisible(false);
  50. mainPane.setVisible(true);
  51. }
  52. ObservableList<Bell> bellData = FXCollections.observableArrayList();
  53. @Override
  54. public void initialize(URL location, ResourceBundle resources) {
  55. columnName.setCellValueFactory(new PropertyValueFactory<Bell, String>("columnName"));
  56. columnDay.setCellValueFactory(new PropertyValueFactory<Bell, String>("columnDay"));
  57. columnTime.setCellValueFactory(new PropertyValueFactory<Bell, String>("columnTime"));
  58. }
  59. }
Класс Bell
Листинг программы
  1. public class Bell {
  2. private String name;
  3. private String day;
  4. private String time;
  5. public Bell(String name, String day, String time) {
  6. this.name = name;
  7. this.day = day;
  8. this.time = time;
  9. }
  10. public String getName() {
  11. return name;
  12. }
  13. public String getDay() {
  14. return day;
  15. }
  16. public String getTime() {
  17. return time;
  18. }
  19. public void setName(String name) {
  20. this.name = name;
  21. }
  22. public void setDay(String day) {
  23. this.day = day;
  24. }
  25. public void setTime(String time) {
  26. this.time = time;
  27. }
  28. }
Суть вопроса: когда я вбиваю данные в TextField, выбираю значения в ComboBox'ах и нажимаю на кнопку. При нажатии кнопки происходит действие creatBell. createBell обрабатывает все данные и заносит их в таблицу, но загвоздка в том, что новая строка создается, но данные в строках не появляются. Что с этим делать?

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

textual
Листинг программы
  1.     @Override
  2.     public void initialize(URL location, ResourceBundle resources) {
  3.         columnName.setCellValueFactory(new PropertyValueFactory<Bell, String>("name"));
  4.         columnDay.setCellValueFactory(new PropertyValueFactory<Bell, String>("day"));
  5.         columnTime.setCellValueFactory(new PropertyValueFactory<Bell, String>("time"));
  6.     }

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


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

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

15   голосов , оценка 3.667 из 5

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

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

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