Я пытаюсь создать систему заказа пиццы в JavaFx, используя TableView в графическом интерфейсе.Я наконец заставил его работать, поэтому я хотел поделиться своим кодом, если у кого-то еще есть проблемы с отображением содержимого 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;
}
}