如何获取要在JavaFX GUI中显示的ArrayList的内容

时间:2018-12-02 10:17:14

标签: java javafx arraylist

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

BottomNavigationBar

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

尝试:

import java.util.ArrayList;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuBar;
import javafx.scene.control.MenuItem;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class PizzaOrderingSystem extends Application {

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

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

        window.setTitle("Pizza ordering system");
        MenuBar menuBar = new MenuBar();
        Menu orderMenu = new Menu("Order");
        orderMenu.getItems().addAll(new OrderMenu().getmenuItems());
        menuBar.getMenus().add(orderMenu);
        VBox vBox = new VBox(menuBar);
        Scene scene = new Scene(vBox, 300, 300);
        window.setScene(scene);
        window.show();
    }
}

class OrderMenu {

    public ArrayList<MenuItem> menuItems;

    public OrderMenu (){

        menuItems = new ArrayList<>();
        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));
    }

    public ArrayList<MenuItem> getmenuItems() {
        return menuItems;
    }
}

class Pizza extends MenuItem {

    Pizza(String name, int cost) {
        setText(name +" $"+cost);
        setOnAction(e-> System.out.println(name+ " piza ordered"));
    }
}

(像这样发布mcve,可以使帮助变得更快,更容易)