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