my TableView
Показывает пустые строки, что мне не хватает?TableView (javaFX) показывает только пустые строки
ссылка проекта ->https://github.com/raphaelbgr/SwingSocketClient/tree/database
Я пытаюсь собрать информацию из базы данных и показать его на этом списке, то соединение JDBC идеально подходит и работает, однако Tableview не отображает элементы, Я прочитал 3 раза учебник оракула, но не повезло.
public ObservableList<MessageDataTableModel> queryChatHistory(int rowLimit) throws SQLException {
final ObservableList<MessageDataTableModel> data = FXCollections.observableArrayList();
String query = "SELECT SERV_REC_TIMESTAMP, OWNERNAME, TEXT FROM MESSAGELOG LIMIT " + rowLimit;
Statement st = c.createStatement();
ResultSet rs = st.executeQuery(query);
while(rs.next()) {
while(rs.next()) {
data.add(new MessageDataTableModel(rs.getString(1),rs.getString(2),rs.getString(3)));
}
}
return data;
}
И это вызывает метод выше:
public void populateHistoryTable(int rowLimit) {
DAO dao = new DAO();
try {
dao.connect();
table_chathistory.setItems(dao.queryChatHistory(rowLimit));
dao.disconnect();
} catch (SQLException e) {
e.printStackTrace();
}
}
Это используется DataModel, нет идеи о том, что мне не хватает на нем:
private SimpleStringProperty timestamp = new SimpleStringProperty();
private SimpleStringProperty screenname = new SimpleStringProperty();
private SimpleStringProperty message = new SimpleStringProperty();
public MessageDataTableModel() {
}
public MessageDataTableModel(String timestamp, String screenname, String message) {
this.timestamp = new SimpleStringProperty(timestamp);
this.screenname = new SimpleStringProperty(screenname);
this.message = new SimpleStringProperty(message);
}
public void setTimestamp(String timestamp) {
this.timestamp.set(timestamp);
}
public void setScreenname(String screenname) {
this.screenname.set(screenname);
}
public void setMessage(String message) {
this.message.set(message);
}
}
И пустой TableView
не появляется, не знаю, чего мне не хватает
ListView состоит из ListCells. 'ListCell' - это абстракция, которая используется для рендеринга содержимого в каждой из строк (это подкласс 'Cell '). Я просматриваю код, который вы предоставили, но я не вижу ничего похожего на фабрику ListCell. –
scottb
Я бы также добавил, что, поскольку вы хотите отображать строки, содержащие несколько полей (TimeStamp, Screen Name, Message), а не только один элемент в каждой строке, вам действительно нужно использовать TableView, предпочитая ListView. Компонент GUI, который вы показываете нам в своем вопросе, по-видимому, представляет собой TableView. – scottb
Это «ListView» или «TableView»? –