У меня проблема с возвратом элемента из combobox ... Итак, основная идея заключается в том, что мой диалог возвращает объект BookDetail, поэтому я могу вставить его в базу данных. В этом диалоговом окне у меня есть combobox для моего класса Category - я ожидаю, что он вернется к моему конструктору в BookDetail объекту Category, который выбран элементом из combobox. У меня уже есть значения из моей category_table в combobox, но я не могу реализовать выбранный объект Category в конструкторе BookDetail ... в этом блоке много кода, поэтому я покажу только усеченный блок.Как вернуть объект из ComboBox
Я хочу, чтобы в этом конструкторе, где теперь вы можете увидеть «categoryBox1», чтобы поместить туда объект категории из combobox. Может ли кто-нибудь дать мне совет или пример, как правильно это сделать? Я не могу найти ответ ...
private void addBook() throws SQLException{
Dialog<BookDetail> dialog = new Dialog<>();
Label categoryLabel1 = new Label("Category: ");
dataCategories = FXCollections.observableArrayList(); // table with categories
ComboBox categoryBox1 = new ComboBox(categoryOptions);
categoryBox1.setMaxHeight(30);
String sql = "select * from tbl_category";
PreparedStatement pst = conn.prepareStatement(sql);
ResultSet rs = pst.executeQuery(sql);
while(rs.next()){
dataCategories.add(new Category(rs.getInt(1),rs.getString(2)));
}
categoryBox1.setItems(dataCategories);
dialog.setResultConverter(new Callback<ButtonType, BookDetail>(){
@Override
public BookDetail call(ButtonType b){
if(b == buttonTypeAdd){
return new BookDetail(isbnText.getText(),authorText.getText(),categoryBox1,
titleText.getText(),publisherText.getText(), dateOfPublicationText.getText(),
Integer.parseInt(ratingText.getText()),commentsText.getText());
}
return null;
}
});
}
Да, это так! :) –