首页 > 解决方案 > 如何获取 ArrayList 的内容以在 JavaFX GUI 中显示

问题描述

我正在尝试使用 GUI 中的 TableView 在 JavaFx 中制作披萨订购系统。我终于让它工作了,所以如果其他人在显示 ArrayList 的内容时遇到问题,我想分享我的代码。现在我将进行布局以使 TableView 适合场景。如果有人对此有任何建议,请随时分享:)

  package pizzaorderingsystem;

  import javafx.application.Application;
  import javafx.collections.FXCollections;
  import javafx.collections.ObservableList;
  import javafx.scene.Scene;
  import javafx.scene.control.TableColumn;
  import javafx.scene.control.TableView;
  import javafx.scene.control.cell.PropertyValueFactory;
  import javafx.scene.layout.VBox;
  import javafx.stage.Stage;

  public class PizzaOrderingSystem extends Application {

    private Stage window;
    private TableView<MenuItem> tableView;

  public static void main(String[] args) {
    launch(args);
  }       

  @Override
  public void start(Stage primaryStage) throws Exception {

    window = primaryStage;
    window.setTitle("Pizza ordering system");

    //Name column
    TableColumn<MenuItem, String> nameColumn = new TableColumn<>("Name"); 
    nameColumn.setMinWidth(200);
    nameColumn.setCellValueFactory(new PropertyValueFactory<>("name"));

    //Price column
    TableColumn<MenuItem, Double> priceColumn = new TableColumn<>("Price"); 
    priceColumn.setMinWidth(100);
    priceColumn.setCellValueFactory(new PropertyValueFactory<>("price"));

    tableView = new TableView<>();
    tableView.setItems(getMenuItem());
    tableView.getColumns().addAll(nameColumn, priceColumn);

    VBox vBox = new VBox();
    vBox.getChildren().addAll(tableView);


    Scene scene = new Scene(vBox);
    window.setScene(scene);
    window.show();

    }

  public ObservableList<MenuItem> getMenuItem(){
    ObservableList<MenuItem> menuItems = 
  FXCollections.observableArrayList();

    menuItems.add(new Pizza("Margherita", 50));
    menuItems.add(new Pizza("Hawaii", 55));
    menuItems.add(new Pizza("Marinara", 70));
    menuItems.add(new Pizza("Meat Lovers", 70));
    menuItems.add(new Pizza("Calazone", 60));

    menuItems.add(new Burger("Burger", 60));
    menuItems.add(new Burger("Cheeseburger", 65));
    menuItems.add(new Burger("Baconburger", 65));

    menuItems.add(new Soda("Coca cola", 25));
    menuItems.add(new Soda("Coca cola light", 25));
    menuItems.add(new Soda("Fanta", 25));
    menuItems.add(new Soda("Faxe kondi", 25));   
    return menuItems;

  }
  }

标签: javajavafxarraylist

解决方案


ArrayList<MenuItem> menuItems = new OrderMenu().getmenuItems();

推荐阅读