如何将ArrayList <string,int =“”>的内容分为两个不同的列

时间:2018-12-03 20:15:46

标签: javafx arraylist gridpane

我在下面看到这个ArrayList。我希望将ArrayList分为三列,其中一列显示项目的“类别”,例如披萨或汉堡,其中一个会显示名称,例如玛格丽特,还有一个显示价格。此外,我希望每个项目都有一行,所以有12行。我试图将ArrayList的内容输入到GridPane中,但是我无法使它正常工作。

JavascriptExecutor js = (JavascriptExecutor)driver;
String sText = ((JavascriptExecutor) driver).executeScript("return arguments[0].innerHTML;",driver.findElement(By.xpath("//*[@id=\"main\"]/h1"))).toString();

1 个答案:

答案 0 :(得分:0)

您不太清楚...但是我想您想将ArrayList信息放入一些表/列中。

您可以使用ObservableList来检查数据中的所有更改:

private ObservableList<MenuItem> menuItems = FXCollections.observableArrayList();

您可以像这样在控制器中设置一些TableView和TableColumns:

@FXML
private TableView<MenuItem> menuTable;
@FXML
private TableColumn<MenuItem, String> nameColumn;
@FXML
private TableColumn<MenuItem, String> priceColumn;

然后,在同一控制器中,在初始化控制器时设置列:

    @FXML
    private void initialize() {
        nameColumn.setCellValueFactory(cellData -> 
          cellData.getValue().getName());
        priceColumn.setCellValueFactory(cellData -> 
          cellData.getValue().getPrice());
    }

然后,在您的主类中,将mainApp设置为该控制器时,可以将列表中的所有项目设置为该表:

public void setMainApp(MainApp mainApp) {
        this.mainApp = mainApp;
        menuTable.setItems(menuItems);
    }

希望这可以为您提供帮助,这里有一个完整的示例:

https://code.makery.ch/library/javafx-tutorial/part2/