我在将Integer值设置为可观察列表时遇到问题。
我有以下代码,以及组合框中的一些Integer值。按下按钮时,我想将组合框中的整数添加到可观察列表中。我能用Strings做到这一点,但这并不适用于Integer。我还需要以整数形式获取数据,因为我需要进行一些计算。有没有人有想法?
public class Resultat {
public SimpleStringProperty res_Auswärtsteam = new SimpleStringProperty();
public SimpleIntegerProperty res_Auswärtstore = new SimpleIntegerProperty();
public Integer getRes_auswärtstore() {
return res_Auswärtstore.get();
}
public String getRes_auswärtsteam() {
return res_Auswärtsteam.get();
}
}
public class Resultat_Controller implements Initializable {
// The table and columns
@FXML TableView<Resultat> result_tableview;
@FXML TableColumn result_Auswärtstore;
@FXML TableColumn result_Auswärtsteam;
@FXML Button result_btn_Hinzufügen;
@FXML ComboBox result_cbo_Auswärtstore;
@FXML ComboBox result_cbo_Auswärtsteam;
// The table's data
ObservableList<Resultat> data;
@Override
public void initialize(URL url, ResourceBundle rb) {
// Set up the table data
result_Auswärtstore.setCellValueFactory(new PropertyValueFactory<Resultat, Integer>("res_auswärtstore"));
result_Auswärtsteam.setCellValueFactory(new PropertyValueFactory<Resultat, Integer>("res_auswärtsteam"));
data = FXCollections.observableArrayList();
result_tableview.setItems(data);
result_cbo_Auswärtstore.getItems().clear();
result_cbo_Auswärtstore.getItems().addAll("1", "2", "3", "4");
result_cbo_Auswärtsteam.getItems().clear();
result_cbo_Auswärtsteam.getItems().addAll("String 1", "String 2", "String 3", "String 4");
}
@FXML
private void handleButtonAction(ActionEvent event) {
Resultat resultateintrag = new Resultat();
resultateintrag.res_Auswärtsteam.setValue(result_cbo_Auswärtsteam.getValue().toString());
resultateintrag.res_Auswärtstore.setValue(2);
data.add(resultateintrag);
}
}
目前我设置了默认值2(显然应该消失)。 感谢
答案 0 :(得分:0)
您的@FXML
字段缺少通用类型。将ComboBox
更改为ComboBox<Integer>
和ComboBox<String>
。同样,TableColumn字段应分别为TableColumn<Resultat, Integer>
和TableColumn<Resultat, String>
。 ComboBox和TableColumn的文档提供了更多信息。