我一直试图在Java中将我从组合框中选择的内容显示到表格视图中。我花了好几个小时已经在寻找解决方案,但无济于事。我没有任何错误,但我似乎无法在TableView上显示字符串。我想请求帮助。
MainView.java有组合框和单击按钮的位置,它应该将组合框中的字符串添加到表中。我已经跳过了一些代码。
MainView.java
public class MainView extends Application {
public static String selectedItemComboBox;
Button btnAdd = new Button(Constants.BUTTON_ADD);
btnAdd.setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent arg0) {
selectedItemComboBox = comboBox.getSelectionModel().getSelectedItem().toString();
ReportManager.showCart();
ReportManager.addToTable();
}
});
}
这是ReportManager类。我将组合框中的字符串存储到ArrayList中,以便将其传递给ObservableList,就像我在Web上的一个示例中看到的那样。
ReportManager.java
public class ReportManager {
public static void addToTable(){
if(ReportCart.details.isEmpty()){
ReportCart.details.add(new JasperTableModel(MainView.selectedItemComboBox.toString()));
System.out.println(jasperList.toString());
}else{
if(ReportCart.details.contains(MainView.selectedItemComboBox)){
System.out.println("Selected Jasper File already added to cart.");
}else{
ReportCart.details.add(new JasperTableModel(MainView.selectedItemComboBox.toString()));
System.out.println(jasperList.toString());
}
}
}
这是我的另一个具有TableView的View类。
ReportCart.Java
public class ReportCart extends Stage{
public static TableView<JasperTableModel> tableView = new TableView<>();
public static ObservableList<JasperTableModel> details = FXCollections.observableArrayList(new JasperTableModel("TEST"),
new JasperTableModel("TEST1"),
new JasperTableModel("TEST2"));
public static void start() {
ObservableList<String> details = FXCollections.observableArrayList(ReportManager.jasperList);
tableView.getColumns().add(jasperFileNameColumn);
jasperFileNameColumn.setCellValueFactory(data -> new SimpleStringProperty(data.getValue()));
tableView.setItems(details);
}
}
JasperTableModel.java
public class JasperTableModel {
public final SimpleStringProperty fileN;
public JasperTableModel(String fileNn) {
this.fileN = new SimpleStringProperty(fileNn);
}
public String getFileName() {
return fileN.get();
}
public void setFileName(String fNamee) {
fileN.set(fNamee);
}
}
我可以获取ArrayList的值,但是我无法在TableView上显示它。 ObservableList为空。提前谢谢!