java - 如何获取 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;
}
}
解决方案
ArrayList<MenuItem> menuItems = new OrderMenu().getmenuItems();
推荐阅读
- vb.net - 如何在 VB.Net 数据网格中禁用单元格编辑?
- prestashop - 提取产品的所有类别 ID
- angular - 使用 Firebase 使用本地化部署 Angular 10 应用
- html - 使元素高度整页
- css - 是否可以使用 CSS 定义可在类中使用的指定颜色值列表?
- c# - 使用 ASP.NET Core 和 SQL Server 在传单地图上动态添加标记
- html5-canvas - 通过画布在 antmedia 直播中嵌入 logo
- javascript - 如何将:“Cookies EU 横幅”添加到 Rails 6 站点
- c# - 如何在 UI 上显示经过净化的表情符号?
- python-3.x - 在 np.fromfunction 中使用带有 if 语句的 lambda 函数,具体取决于 `i` 和 `j`