JavaFX中ComboBox的Tableview上未显示字符串
我一直在尝试用Java显示我从组合框到表视图中选择的内容。我已经花了几个小时寻找解决方案,但没有用。我没有任何错误,但我似乎无法在TableView上显示字符串。我想寻求帮助 java有一个组合框和一个按钮,可以单击它应该在组合框中将字符串添加到表中的位置。我跳过了一些代码 MainView.javaJavaFX中ComboBox的Tableview上未显示字符串,java,javafx,openjdk,Java,Javafx,Openjdk,我一直在尝试用Java显示我从组合框到表视图中选择的内容。我已经花了几个小时寻找解决方案,但没有用。我没有任何错误,但我似乎无法在TableView上显示字符串。我想寻求帮助 java有一个组合框和一个按钮,可以单击它应该在组合框中将字符串添加到表中的位置。我跳过了一些代码 MainView.java public class MainView extends Application { public static String selectedItemComboBox; Button
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();
}
});
}
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());
}
}
}
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);
}
}
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);
}
}
这是我的另一个视图类,它有TableView
ReportCart.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();
}
});
}
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());
}
}
}
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);
}
}
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上显示它。可观察列表是空的。提前谢谢 您能在表视图中显示硬编码字符串吗?@Emanuel我曾尝试在表视图中显示硬编码字符串,但它只显示空白。我可以单击,但没有显示。有什么想法吗?谢谢今天我将试着重现你的问题。是否在initialize()方法中初始化了表视图?(setCellValueFactory…?很遗憾,我没有initialize()方法。我已经更新了上面的代码。试图跟踪Oracle网站上的文档。我试图显示“TEST”、“TEST1”和“TEST2”字符串,但它在我的表视图中只显示空格。您能在表视图中显示硬编码字符串吗?@Emanuel我试图在我的表视图中显示硬编码字符串,但它只显示空格。我可以单击,但没有显示。有什么想法吗?谢谢今天我将试着重现你的问题。是否在initialize()方法中初始化了表视图?(setCellValueFactory…?很遗憾,我没有initialize()方法。我已经更新了上面的代码。试图跟踪Oracle网站上的文档。我试图显示“TEST”、“TEST1”和“TEST2”字符串,但它只在我的表视图上显示空白。