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"));
}