In: Computer Science
A javafx gui that's meant to work like a shopping cart, which has 3 books how did this happen 12.99, will benelli, 14.99, and where do I go, 10.99, you can remove from cart, clear cart, or checkout, and it should have a receipt of what you purchased. I am using eclipse, thanks.
Main.java package sample; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.logging.Level; import java.util.logging.Logger; import javafx.application.Application; import static javafx.application.Application.launch; import javafx.beans.value.ChangeListener; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.scene.Scene; import javafx.scene.control.*; import javafx.scene.image.ImageView; import javafx.scene.layout.FlowPane; import javafx.scene.layout.StackPane; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage primaryStage) { // Button btn = new Button(); // btn.setText("Say 'Hello World'"); // btn.setOnAction(new EventHandler<ActionEvent>() { // // @Override // public void handle(ActionEvent event) { // System.out.println("Hello World!"); // } // }); primaryStage.setTitle("Shopping cart App"); FlowPane rootNode = new FlowPane(); FlowPane list_items = new FlowPane(); FlowPane list_items1 = new FlowPane(); FlowPane check_pane = new FlowPane(); rootNode.setVgap(10); list_items.setVgap(10); list_items.setHgap(85); list_items1.setVgap(10); list_items1.setHgap(10); check_pane.setHgap(10); rootNode.setPadding(new Insets(10, 10, 10, 10)); Label items_pick = new Label("Items to pick:"); Label your_cart = new Label("Your shopping cart:"); Label result = new Label(""); ListView<Product> listView = new ListView<>(); Product Apple = new Product("Apple",5); Product Pumpkin = new Product("Pumpkin",15); Product Orange = new Product("Orange",10); Product Banana = new Product("Banana",12); Product Pear = new Product("Pear",25); listView.getItems().addAll(Apple,Pumpkin,Orange,Banana,Pear); listView.setPrefHeight(120); listView.setPrefWidth(100); Button add = new Button("Add"); Button remove = new Button("Remove"); Button checkout = new Button("Checkout"); ListView<Product> cartView = new ListView<>(); cartView.setPrefHeight(120); cartView.setPrefWidth(100); // sporno ako dobavish poveche ot 5 add.setOnAction((ActionEvent event) -> { cartView.getItems().add(listView.getSelectionModel().getSelectedItem()); }); remove.setOnAction((ActionEvent event) -> { final int selectedIdx = cartView.getSelectionModel().getSelectedIndex(); cartView.getItems().remove(selectedIdx); }); checkout.setOnAction((ActionEvent event) -> { ObservableList<Product> res = cartView.getItems(); double result_price = 0; for (Product tabPane : res){ result_price += tabPane.getValue(); } result.setText("Total price: " + result_price); }); list_items.getChildren().addAll(items_pick,your_cart); list_items1.getChildren().addAll(listView,add,cartView,remove); check_pane.getChildren().addAll(checkout,result); //list_items.setAlignment(Pos.CENTER); rootNode.getChildren().addAll(list_items,list_items1,check_pane); Scene myScene = new Scene(rootNode,400,300 primaryStage.setScene(myScene); primaryStage.show(); } /** command line arguments */ public static void main(String[] args) { launch(args); } }
Product.java
package sample; public class Product { String name; double price; Product(String name, double price){ this.name = name; this.price = price; } public String toString(){ return this.name + " - " + this.price; } double getValue(){ return this.price; } }
Hope This will help You .