ahhhhhhhhhhhh

This commit is contained in:
sageTheDM 2025-01-08 14:40:54 +01:00
parent 7836821c51
commit 7663a81750
50 changed files with 860 additions and 341 deletions

View file

@ -17,8 +17,16 @@ public class App extends Application {
@Override
public void start(Stage stage) throws IOException {
scene = new Scene(loadFXML("shop"), 640, 480);
// Load FXML and create the scene
scene = new Scene(loadFXML("shop"));
// Apply the CSS stylesheet
scene.getStylesheets().add(getClass().getResource("styles.css").toExternalForm());
// Set the stage properties
stage.setScene(scene);
stage.setTitle("Fantasy Brigade Bookshop");
stage.setFullScreen(true); // Make the application fullscreen
stage.show();
}
@ -35,4 +43,4 @@ public class App extends Application {
launch();
}
}
}

View file

@ -0,0 +1,121 @@
package com.example;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
public class CartController {
@FXML
private Button cartBtn;
@FXML
private Button loginBtn;
@FXML
private Button btnCheckOut;
@FXML
private TableView<Item> cartContent;
@FXML
private TableColumn<Item, String> nameColumn;
@FXML
private TableColumn<Item, String> descriptionColumn;
@FXML
private TableColumn<Item, Integer> quantityColumn;
@FXML
private TableColumn<Item, Double> priceColumn;
@FXML
private Label cartTitle;
@FXML
private Label mainTitle;
// Initialize method to set up the TableView
@FXML
public void initialize() {
nameColumn.setCellValueFactory(new PropertyValueFactory<>("name"));
descriptionColumn.setCellValueFactory(new PropertyValueFactory<>("description"));
quantityColumn.setCellValueFactory(new PropertyValueFactory<>("quantity"));
priceColumn.setCellValueFactory(new PropertyValueFactory<>("price"));
// Populate the table with some sample data (replace with actual logic later)
cartContent.getItems().addAll(
new Item("Book A", "A fascinating fantasy novel.", 1, 12.99),
new Item("Book B", "A thrilling sequel.", 2, 10.50));
}
@FXML
private void handleCartButton(ActionEvent event) {
System.out.println("Cart button clicked!");
// Add logic to navigate to the cart view or perform related actions
}
@FXML
private void handleLoginButton(ActionEvent event) {
System.out.println("Login button clicked!");
// Add logic to open the login page or dialog
}
@FXML
private void handleCheckOutButton(ActionEvent event) {
System.out.println("Checkout button clicked!");
// Add logic to proceed to checkout
}
// Inner class to represent items in the cart
public static class Item {
private String name;
private String description;
private int quantity;
private double price;
public Item(String name, String description, int quantity, double price) {
this.name = name;
this.description = description;
this.quantity = quantity;
this.price = price;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public int getQuantity() {
return quantity;
}
public void setQuantity(int quantity) {
this.quantity = quantity;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
}
}

View file

@ -0,0 +1,118 @@
package com.example;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.*;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
public class CheckOutController {
@FXML
private Label mainTitle;
@FXML
private Button cartBtn;
@FXML
private Button loginBtn;
@FXML
private Label checkoutHeader;
@FXML
private Label paymentTitle;
@FXML
private Label paymentSubtitle;
@FXML
private Button creditCard;
@FXML
private Button bill;
@FXML
private Button paypal;
@FXML
private TextField fullNameField;
@FXML
private TextField addressField;
@FXML
private TextField cityField;
@FXML
private TextField zipField;
@FXML
private ComboBox<String> countryComboBox;
@FXML
private TextField cardNumberField;
@FXML
private TextField cardHolderNameField;
@FXML
private TextField expiryDateField;
@FXML
private PasswordField cvvField;
@FXML
private Button submitButton;
public void initialize() {
// Initialize the country combo box with some values
countryComboBox.getItems().addAll("United States", "Canada", "United Kingdom", "Germany", "Australia");
countryComboBox.getSelectionModel().selectFirst();
}
@FXML
private void handleCartButton(ActionEvent event) {
System.out.println("Cart button clicked.");
// Logic to navigate to the cart page
}
@FXML
private void handleLoginButton(ActionEvent event) {
System.out.println("Login button clicked.");
// Logic to navigate to the login page
}
@FXML
private void handlePaymentMethod(ActionEvent event) {
Button clickedButton = (Button) event.getSource();
System.out.println("Selected payment method: " + clickedButton.getId());
// Highlight the selected payment method or save the selection
}
@FXML
private void handleSubmit(ActionEvent event) {
System.out.println("Submit button clicked.");
String fullName = fullNameField.getText();
String address = addressField.getText();
String city = cityField.getText();
String zip = zipField.getText();
String country = countryComboBox.getValue();
String cardNumber = cardNumberField.getText();
String cardHolderName = cardHolderNameField.getText();
String expiryDate = expiryDateField.getText();
String cvv = cvvField.getText();
// Validate the input fields
if (fullName.isEmpty() || address.isEmpty() || city.isEmpty() || zip.isEmpty() || cardNumber.isEmpty()
|| cardHolderName.isEmpty() || expiryDate.isEmpty() || cvv.isEmpty()) {
System.out.println("Please fill out all fields.");
} else {
System.out.println("Form submitted successfully.");
System.out.printf("Billing Info: %s, %s, %s, %s, %s\n", fullName, address, city, zip, country);
System.out.printf("Credit Card Info: %s, %s, %s, CVV: %s\n", cardNumber, cardHolderName, expiryDate, cvv);
// Process the payment here
}
}
}

View file

@ -0,0 +1,56 @@
package com.example;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.PasswordField;
import javafx.scene.control.TextField;
import javafx.scene.input.MouseEvent;
public class LoginController {
@FXML
private Label mainTitle;
@FXML
private Button cartBtn;
@FXML
private Button loginBtn;
@FXML
private TextField usernameInput;
@FXML
private PasswordField passwordInput;
@FXML
private Button loginButton;
@FXML
private Label footerCopyText;
@FXML
private void handleCartButtonClick(MouseEvent event) {
System.out.println("Cart button clicked.");
// Logic to navigate to the cart page
}
@FXML
private void handleLoginButtonClick(MouseEvent event) {
String username = usernameInput.getText();
String password = passwordInput.getText();
if (validateCredentials(username, password)) {
System.out.println("Login successful!");
// Navigate to the main page or user dashboard
} else {
System.out.println("Invalid username or password.");
}
}
private boolean validateCredentials(String username, String password) {
// Replace this with actual authentication logic
return "user".equals(username) && "password".equals(password);
}
}

View file

@ -0,0 +1,87 @@
package com.example;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.input.MouseEvent;
public class RegisterController {
@FXML
private Label mainTitle;
@FXML
private Button cartBtn;
@FXML
private Button loginBtn;
@FXML
private TextField nameInput;
@FXML
private TextField surnameInput;
@FXML
private TextField emailInput;
@FXML
private TextField phoneInput;
@FXML
private TextField streetInput;
@FXML
private TextField cityInput;
@FXML
private TextField cityCodeInput;
@FXML
private Button createAccountButton;
@FXML
private Label footerCopyText;
@FXML
private void handleCartButtonClick(MouseEvent event) {
System.out.println("Cart button clicked.");
// Logic to navigate to the cart page
}
@FXML
private void handleLoginButtonClick(MouseEvent event) {
System.out.println("Login button clicked.");
// Logic to navigate to the login page
}
@FXML
private void handleCreateAccountButtonClick(MouseEvent event) {
String name = nameInput.getText();
String surname = surnameInput.getText();
String email = emailInput.getText();
String phone = phoneInput.getText();
String street = streetInput.getText();
String city = cityInput.getText();
String cityCode = cityCodeInput.getText();
if (validateForm(name, surname, email, phone, street, city, cityCode)) {
System.out.println("Account created successfully!");
System.out.println("Name: " + name + " " + surname);
System.out.println("Email: " + email);
System.out.println("Phone: " + phone);
System.out.println("Address: " + street + ", " + city + " - " + cityCode);
// Add logic to save user data or navigate to a new page
} else {
System.out.println("Please fill in all the fields correctly.");
}
}
private boolean validateForm(String name, String surname, String email, String phone, String street, String city,
String cityCode) {
// Basic validation to ensure no fields are empty
return !(name.isEmpty() || surname.isEmpty() || email.isEmpty() || phone.isEmpty() || street.isEmpty()
|| city.isEmpty() || cityCode.isEmpty());
}
}

View file

@ -0,0 +1,132 @@
package com.example;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextArea;
public class ShopController {
@FXML
private Button cartBtn;
@FXML
private Button loginBtn;
@FXML
private Button cardBtn1;
@FXML
private Button cardBtn2;
@FXML
private Button cardBtn3;
@FXML
private Button cardBtn4;
@FXML
private Button cardBtn5;
@FXML
private Button cardBtn6;
@FXML
private Button cardBtn7;
@FXML
private Button cardBtn8;
@FXML
private Label mainTitle;
@FXML
private TextArea cardText1;
@FXML
private TextArea cardText2;
@FXML
private TextArea cardText3;
@FXML
private TextArea cardText4;
@FXML
private TextArea cardText5;
@FXML
private TextArea cardText6;
@FXML
private TextArea cardText7;
@FXML
private TextArea cardText8;
@FXML
public void initialize() {
// Initialization logic can go here.
System.out.println("ShopController initialized.");
}
@FXML
private void handleCartButton() {
System.out.println("Cart button clicked!");
// Logic for displaying the cart.
}
@FXML
private void handleLoginButton() {
System.out.println("Login button clicked!");
// Logic for handling login.
}
@FXML
private void handleAddToCartButton1() {
System.out.println("Added 'Lord of the Rings' to cart!");
// Logic for adding the first book to the cart.
}
@FXML
private void handleAddToCartButton2() {
System.out.println("Added 'The Wheel of Time' to cart!");
// Logic for adding the second book to the cart.
}
@FXML
private void handleAddToCartButton3() {
System.out.println("Added 'The Chronicles of Narnia' to cart!");
// Logic for adding the third book to the cart.
}
@FXML
private void handleAddToCartButton4() {
System.out.println("Added 'The Earthsea Cycle' to cart!");
// Logic for adding the fourth book to the cart.
}
@FXML
private void handleAddToCartButton5() {
System.out.println("Added 'The First Law Trilogy' to cart!");
// Logic for adding the fifth book to the cart.
}
@FXML
private void handleAddToCartButton6() {
System.out.println("Added 'The Kingkiller Chronicle' to cart!");
// Logic for adding the sixth book to the cart.
}
@FXML
private void handleAddToCartButton7() {
System.out.println("Added 'The Mistborn Series' to cart!");
// Logic for adding the seventh book to the cart.
}
@FXML
private void handleAddToCartButton8() {
System.out.println("Added 'The Stormlight Archive' to cart!");
// Logic for adding the eighth book to the cart.
}
}

View file

@ -1,5 +0,0 @@
package com.example;
public class cartController {
}

View file

@ -1,45 +0,0 @@
package com.example;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.ComboBox;
import javafx.scene.control.PasswordField;
import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane;
public class checkOutController {
@FXML
private TextField addressField;
@FXML
private TextField addressField1;
@FXML
private GridPane billingForm;
@FXML
private TextField cardHolderNameField;
@FXML
private TextField cardNumberField;
@FXML
private TextField cityField;
@FXML
private ComboBox<?> countryComboBox;
@FXML
private PasswordField cvvField;
@FXML
private TextField expiryDateField;
@FXML
private Button submitButton;
@FXML
private TextField zipField;
}

View file

@ -1,5 +0,0 @@
package com.example;
public class loginController {
}

View file

@ -1,5 +0,0 @@
package com.example;
public class registerController {
}

View file

@ -1,5 +0,0 @@
package com.example;
public class shopController {
}

View file

@ -13,7 +13,7 @@
<?import javafx.scene.layout.RowConstraints?>
<?import javafx.scene.layout.VBox?>
<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="800.0" prefWidth="1200.0" xmlns="http://javafx.com/javafx/23.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.example.cartController">
<fx:root maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="800.0" prefWidth="1200.0" type="BorderPane" xmlns="http://javafx.com/javafx/23.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.example.cartController">
<top>
<HBox id="header" alignment="CENTER" prefHeight="60.0" prefWidth="631.0" spacing="20.0" styleClass="header" BorderPane.alignment="CENTER">
<children>
@ -48,13 +48,13 @@
<children>
<Button id="btnCheckOut" mnemonicParsing="false" styleClass="btnCheckOut" text="Check out" GridPane.rowIndex="2" />
<Label id="cartTitle" styleClass="cartTitle" text="Your cart" />
<TableView prefHeight="0.0" prefWidth="364.0" GridPane.rowIndex="1">
<columns>
<TableColumn prefWidth="243.0" text="Name" />
<TableColumn prefWidth="615.0" text="Description" />
<TableColumn minWidth="0.0" prefWidth="154.0" text="Quantaty" />
<TableColumn minWidth="0.0" prefWidth="147.0" text="Price" />
</columns>
<TableView id="cartContent" prefHeight="0.0" prefWidth="364.0" GridPane.rowIndex="1">
<columns>
<TableColumn id="nameColumn" prefWidth="243.0" text="Name" />
<TableColumn id="descriptionColumn" prefWidth="615.0" text="Description" />
<TableColumn id="quantityColumn" minWidth="0.0" prefWidth="154.0" text="Quantity" />
<TableColumn id="priceColumn" minWidth="0.0" prefWidth="147.0" text="Price" />
</columns>
</TableView>
</children>
</GridPane>
@ -97,4 +97,4 @@
</children>
</VBox>
</bottom>
</BorderPane>
</fx:root>

View file

@ -18,13 +18,8 @@
<top>
<HBox id="header" alignment="CENTER" prefHeight="60.0" prefWidth="631.0" spacing="20.0" styleClass="header" BorderPane.alignment="CENTER">
<children>
<!-- Main Title -->
<Label id="mainTitle" styleClass="mainTitle" text="Bookshop - Fantasy Brigade" />
<!-- Spacer for alignment -->
<Pane HBox.hgrow="ALWAYS" />
<!-- Buttons -->
<Pane id="headerSpacer" HBox.hgrow="ALWAYS" />
<Button id="cartBtn" mnemonicParsing="false" styleClass="cartBtn" text="Cart" />
<Button id="loginBtn" mnemonicParsing="false" styleClass="loginBtn" text="Login" />
</children>
@ -72,72 +67,52 @@
</VBox>
</bottom>
<center>
<GridPane id="main" styleClass="main" BorderPane.alignment="CENTER">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<GridPane id="main" alignment="TOP_CENTER" styleClass="main" BorderPane.alignment="CENTER">
<children>
<GridPane fx:id="billingForm" alignment="TOP_CENTER" hgap="10" prefHeight="600.0" prefWidth="800.0" style="-fx-background-color: rgba(238, 130, 238, 0.8);" vgap="20">
<GridPane id="billingForm" alignment="TOP_CENTER" hgap="10" prefHeight="600.0" prefWidth="800.0" style="-fx-background-color: rgba(238, 130, 238, 0.8);" vgap="20">
<children>
<!-- Check Out Header -->
<Label id="checkoutHeader" style="-fx-font-size: 24px; -fx-font-weight: bold;" text="Check out" textFill="WHITE" GridPane.columnSpan="2" GridPane.rowIndex="0" />
<!-- Payment Title -->
<Label id="paymentTitle" style="-fx-font-size: 30px; -fx-font-weight: bold;" text="Payment" textFill="WHITE" GridPane.columnSpan="2" GridPane.rowIndex="1" />
<Label id="paymentSubtitle" style="-fx-font-size: 14px;" text="Choose payment method below" textFill="WHITE" GridPane.columnSpan="2" GridPane.rowIndex="2" />
<!-- Payment Icons -->
<HBox id="paymentMethods" alignment="CENTER" spacing="20" GridPane.columnSpan="2" GridPane.rowIndex="3">
<Button id="creditCard" mnemonicParsing="false" styleClass="creditCard" />
<Button id="bill" mnemonicParsing="false" styleClass="bill" />
<Button id="paypal" mnemonicParsing="false" styleClass="paypal" />
</HBox>
<!-- Billing Info Section -->
<Label id="billingInfoTitle" style="-fx-font-size: 18px; -fx-font-weight: bold;" text="Billing Info" textFill="WHITE" GridPane.columnIndex="0" GridPane.rowIndex="4" />
<HBox id="billingName" spacing="10" GridPane.columnIndex="0" GridPane.rowIndex="5">
<Label id="fullNameLabel" text="Full Name:" textFill="WHITE" />
<TextField fx:id="addressField1" prefWidth="200" promptText="Jon Doe" />
<Label id="fullNameLabel" text="Full Name:" textFill="WHITE" />
<TextField id="fullNameField" fx:id="addressField1" prefWidth="200" promptText="Jon Doe" />
</HBox>
<HBox id="billingAddress" spacing="10" GridPane.columnIndex="0" GridPane.rowIndex="6">
<Label id="addressLabel" text="Address:" textFill="WHITE" />
<TextField fx:id="addressField" prefWidth="200" promptText="497 Evergreen Rd." />
<HBox id="billingAddress" spacing="10" GridPane.columnIndex="0" GridPane.rowIndex="6">
<Label id="addressLabel" text="Address:" textFill="WHITE" />
<TextField id="addressField" fx:id="addressField" prefWidth="200" promptText="497 Evergreen Rd." />
</HBox>
<HBox id="billingCityZip" spacing="10" GridPane.columnIndex="0" GridPane.rowIndex="7">
<Label id="cityLabel" text="City:" textFill="WHITE" />
<TextField fx:id="cityField" prefWidth="100" promptText="Roseville" />
<Label id="zipLabel" text="ZIP Code:" textFill="WHITE" />
<TextField fx:id="zipField" prefWidth="80" promptText="95673" />
<HBox id="billingCityZip" spacing="10" GridPane.columnIndex="0" GridPane.rowIndex="7">
<Label id="cityLabel" text="City:" textFill="WHITE" />
<TextField id="cityField" fx:id="cityField" prefWidth="100" promptText="Roseville" />
<Label id="zipLabel" text="ZIP Code:" textFill="WHITE" />
<TextField id="zipField" fx:id="zipField" prefWidth="80" promptText="95673" />
</HBox>
<HBox id="billingCountry" spacing="10" GridPane.columnIndex="0" GridPane.rowIndex="8">
<Label id="countryLabel" text="Country:" textFill="WHITE" />
<ComboBox fx:id="countryComboBox" prefWidth="150.0" />
<HBox id="billingCountry" spacing="10" GridPane.columnIndex="0" GridPane.rowIndex="8">
<Label id="countryLabel" text="Country:" textFill="WHITE" />
<ComboBox id="countryComboBox" fx:id="countryComboBox" prefWidth="150.0" />
</HBox>
<!-- Credit Card Info Section -->
<Label id="creditCardInfoTitle" style="-fx-font-size: 18px; -fx-font-weight: bold;" text="Credit Card Info" textFill="WHITE" GridPane.columnIndex="1" GridPane.rowIndex="4" />
<HBox id="creditCardNumber" spacing="10" GridPane.columnIndex="1" GridPane.rowIndex="5">
<Label id="cardNumberLabel" text="Card Number:" textFill="WHITE" />
<TextField fx:id="cardNumberField" prefWidth="200" promptText="1234 5678 3456 2456" />
<Label id="cardNumberLabel" text="Card Number:" textFill="WHITE" />
<TextField id="cardNumberField" fx:id="cardNumberField" prefWidth="200" promptText="1234 5678 3456 2456" />
</HBox>
<HBox id="creditCardHolder" spacing="10" GridPane.columnIndex="1" GridPane.rowIndex="6">
<Label id="cardHolderNameLabel" text="Cardholder Name:" textFill="WHITE" />
<TextField fx:id="cardHolderNameField" prefWidth="200" promptText="John Doe" />
<Label id="cardHolderNameLabel" text="Cardholder Name:" textFill="WHITE" />
<TextField id="cardHolderNameField" fx:id="cardHolderNameField" prefWidth="200" promptText="John Doe" />
</HBox>
<HBox id="creditCardExpiry" spacing="10" GridPane.columnIndex="1" GridPane.rowIndex="7">
<Label id="expiryDateLabel" text="Expire Date:" textFill="WHITE" />
<TextField fx:id="expiryDateField" prefWidth="80" promptText="MM / YY" />
<Label id="cvvLabel" text="CVV:" textFill="WHITE" />
<PasswordField fx:id="cvvField" />
<Label id="expiryDateLabel" text="Expire Date:" textFill="WHITE" />
<TextField id="expiryDateField" fx:id="expiryDateField" prefWidth="80" promptText="MM / YY" />
<Label id="cvvLabel" text="CVV:" textFill="WHITE" />
<PasswordField id="cvvField" fx:id="cvvField" />
</HBox>
<!-- Submit Button -->
<Button id="submitBtn" fx:id="submitButton" alignment="CENTER" contentDisplay="CENTER" prefWidth="150" style="-fx-alignment: #4CAF50; -fx-text-fill: white; -fx-font-size: 16px; -fx-font-weight: bold;" styleClass="cartBtn" text="Submit" GridPane.columnSpan="2" GridPane.rowIndex="9" />
</children>
<columnConstraints>
@ -156,17 +131,14 @@
<RowConstraints />
<RowConstraints />
</rowConstraints>
<opaqueInsets>
<Insets />
</opaqueInsets>
<GridPane.margin>
<Insets />
</GridPane.margin>
<padding>
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
</padding>
</GridPane>
</children>
<columnConstraints>
<ColumnConstraints />
</columnConstraints>
<rowConstraints>
<RowConstraints />
</rowConstraints>
</GridPane>
</center>
</BorderPane>

View file

@ -13,7 +13,7 @@
<?import javafx.scene.layout.RowConstraints?>
<?import javafx.scene.layout.VBox?>
<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="800.0" prefWidth="1200.0" xmlns="http://javafx.com/javafx/23.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.example.cartController">
<fx:root maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="800.0" prefWidth="1200.0" type="BorderPane" xmlns="http://javafx.com/javafx/23.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.example.cartController">
<top>
<HBox id="header" alignment="CENTER" prefHeight="60.0" prefWidth="631.0" spacing="20.0" styleClass="header" BorderPane.alignment="CENTER">
<children>
@ -48,13 +48,13 @@
<children>
<Button id="btnCheckOut" mnemonicParsing="false" styleClass="btnCheckOut" text="Check out" GridPane.rowIndex="2" />
<Label id="cartTitle" styleClass="cartTitle" text="Your cart" />
<TableView prefHeight="0.0" prefWidth="364.0" GridPane.rowIndex="1">
<columns>
<TableColumn prefWidth="243.0" text="Name" />
<TableColumn prefWidth="615.0" text="Description" />
<TableColumn minWidth="0.0" prefWidth="154.0" text="Quantaty" />
<TableColumn minWidth="0.0" prefWidth="147.0" text="Price" />
</columns>
<TableView id="cartContent" prefHeight="0.0" prefWidth="364.0" GridPane.rowIndex="1">
<columns>
<TableColumn id="nameColumn" prefWidth="243.0" text="Name" />
<TableColumn id="descriptionColumn" prefWidth="615.0" text="Description" />
<TableColumn id="quantityColumn" minWidth="0.0" prefWidth="154.0" text="Quantity" />
<TableColumn id="priceColumn" minWidth="0.0" prefWidth="147.0" text="Price" />
</columns>
</TableView>
</children>
</GridPane>
@ -97,4 +97,4 @@
</children>
</VBox>
</bottom>
</BorderPane>
</fx:root>

View file

@ -18,13 +18,8 @@
<top>
<HBox id="header" alignment="CENTER" prefHeight="60.0" prefWidth="631.0" spacing="20.0" styleClass="header" BorderPane.alignment="CENTER">
<children>
<!-- Main Title -->
<Label id="mainTitle" styleClass="mainTitle" text="Bookshop - Fantasy Brigade" />
<!-- Spacer for alignment -->
<Pane HBox.hgrow="ALWAYS" />
<!-- Buttons -->
<Pane id="headerSpacer" HBox.hgrow="ALWAYS" />
<Button id="cartBtn" mnemonicParsing="false" styleClass="cartBtn" text="Cart" />
<Button id="loginBtn" mnemonicParsing="false" styleClass="loginBtn" text="Login" />
</children>
@ -72,72 +67,52 @@
</VBox>
</bottom>
<center>
<GridPane id="main" styleClass="main" BorderPane.alignment="CENTER">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<GridPane id="main" alignment="TOP_CENTER" styleClass="main" BorderPane.alignment="CENTER">
<children>
<GridPane fx:id="billingForm" alignment="TOP_CENTER" hgap="10" prefHeight="600.0" prefWidth="800.0" style="-fx-background-color: rgba(238, 130, 238, 0.8);" vgap="20">
<GridPane id="billingForm" alignment="TOP_CENTER" hgap="10" prefHeight="600.0" prefWidth="800.0" style="-fx-background-color: rgba(238, 130, 238, 0.8);" vgap="20">
<children>
<!-- Check Out Header -->
<Label id="checkoutHeader" style="-fx-font-size: 24px; -fx-font-weight: bold;" text="Check out" textFill="WHITE" GridPane.columnSpan="2" GridPane.rowIndex="0" />
<!-- Payment Title -->
<Label id="paymentTitle" style="-fx-font-size: 30px; -fx-font-weight: bold;" text="Payment" textFill="WHITE" GridPane.columnSpan="2" GridPane.rowIndex="1" />
<Label id="paymentSubtitle" style="-fx-font-size: 14px;" text="Choose payment method below" textFill="WHITE" GridPane.columnSpan="2" GridPane.rowIndex="2" />
<!-- Payment Icons -->
<HBox id="paymentMethods" alignment="CENTER" spacing="20" GridPane.columnSpan="2" GridPane.rowIndex="3">
<Button id="creditCard" mnemonicParsing="false" styleClass="creditCard" />
<Button id="bill" mnemonicParsing="false" styleClass="bill" />
<Button id="paypal" mnemonicParsing="false" styleClass="paypal" />
</HBox>
<!-- Billing Info Section -->
<Label id="billingInfoTitle" style="-fx-font-size: 18px; -fx-font-weight: bold;" text="Billing Info" textFill="WHITE" GridPane.columnIndex="0" GridPane.rowIndex="4" />
<HBox id="billingName" spacing="10" GridPane.columnIndex="0" GridPane.rowIndex="5">
<Label id="fullNameLabel" text="Full Name:" textFill="WHITE" />
<TextField fx:id="addressField1" prefWidth="200" promptText="Jon Doe" />
<Label id="fullNameLabel" text="Full Name:" textFill="WHITE" />
<TextField id="fullNameField" fx:id="addressField1" prefWidth="200" promptText="Jon Doe" />
</HBox>
<HBox id="billingAddress" spacing="10" GridPane.columnIndex="0" GridPane.rowIndex="6">
<Label id="addressLabel" text="Address:" textFill="WHITE" />
<TextField fx:id="addressField" prefWidth="200" promptText="497 Evergreen Rd." />
<HBox id="billingAddress" spacing="10" GridPane.columnIndex="0" GridPane.rowIndex="6">
<Label id="addressLabel" text="Address:" textFill="WHITE" />
<TextField id="addressField" fx:id="addressField" prefWidth="200" promptText="497 Evergreen Rd." />
</HBox>
<HBox id="billingCityZip" spacing="10" GridPane.columnIndex="0" GridPane.rowIndex="7">
<Label id="cityLabel" text="City:" textFill="WHITE" />
<TextField fx:id="cityField" prefWidth="100" promptText="Roseville" />
<Label id="zipLabel" text="ZIP Code:" textFill="WHITE" />
<TextField fx:id="zipField" prefWidth="80" promptText="95673" />
<HBox id="billingCityZip" spacing="10" GridPane.columnIndex="0" GridPane.rowIndex="7">
<Label id="cityLabel" text="City:" textFill="WHITE" />
<TextField id="cityField" fx:id="cityField" prefWidth="100" promptText="Roseville" />
<Label id="zipLabel" text="ZIP Code:" textFill="WHITE" />
<TextField id="zipField" fx:id="zipField" prefWidth="80" promptText="95673" />
</HBox>
<HBox id="billingCountry" spacing="10" GridPane.columnIndex="0" GridPane.rowIndex="8">
<Label id="countryLabel" text="Country:" textFill="WHITE" />
<ComboBox fx:id="countryComboBox" prefWidth="150.0" />
<HBox id="billingCountry" spacing="10" GridPane.columnIndex="0" GridPane.rowIndex="8">
<Label id="countryLabel" text="Country:" textFill="WHITE" />
<ComboBox id="countryComboBox" fx:id="countryComboBox" prefWidth="150.0" />
</HBox>
<!-- Credit Card Info Section -->
<Label id="creditCardInfoTitle" style="-fx-font-size: 18px; -fx-font-weight: bold;" text="Credit Card Info" textFill="WHITE" GridPane.columnIndex="1" GridPane.rowIndex="4" />
<HBox id="creditCardNumber" spacing="10" GridPane.columnIndex="1" GridPane.rowIndex="5">
<Label id="cardNumberLabel" text="Card Number:" textFill="WHITE" />
<TextField fx:id="cardNumberField" prefWidth="200" promptText="1234 5678 3456 2456" />
<Label id="cardNumberLabel" text="Card Number:" textFill="WHITE" />
<TextField id="cardNumberField" fx:id="cardNumberField" prefWidth="200" promptText="1234 5678 3456 2456" />
</HBox>
<HBox id="creditCardHolder" spacing="10" GridPane.columnIndex="1" GridPane.rowIndex="6">
<Label id="cardHolderNameLabel" text="Cardholder Name:" textFill="WHITE" />
<TextField fx:id="cardHolderNameField" prefWidth="200" promptText="John Doe" />
<Label id="cardHolderNameLabel" text="Cardholder Name:" textFill="WHITE" />
<TextField id="cardHolderNameField" fx:id="cardHolderNameField" prefWidth="200" promptText="John Doe" />
</HBox>
<HBox id="creditCardExpiry" spacing="10" GridPane.columnIndex="1" GridPane.rowIndex="7">
<Label id="expiryDateLabel" text="Expire Date:" textFill="WHITE" />
<TextField fx:id="expiryDateField" prefWidth="80" promptText="MM / YY" />
<Label id="cvvLabel" text="CVV:" textFill="WHITE" />
<PasswordField fx:id="cvvField" />
<Label id="expiryDateLabel" text="Expire Date:" textFill="WHITE" />
<TextField id="expiryDateField" fx:id="expiryDateField" prefWidth="80" promptText="MM / YY" />
<Label id="cvvLabel" text="CVV:" textFill="WHITE" />
<PasswordField id="cvvField" fx:id="cvvField" />
</HBox>
<!-- Submit Button -->
<Button id="submitBtn" fx:id="submitButton" alignment="CENTER" contentDisplay="CENTER" prefWidth="150" style="-fx-alignment: #4CAF50; -fx-text-fill: white; -fx-font-size: 16px; -fx-font-weight: bold;" styleClass="cartBtn" text="Submit" GridPane.columnSpan="2" GridPane.rowIndex="9" />
</children>
<columnConstraints>
@ -156,17 +131,14 @@
<RowConstraints />
<RowConstraints />
</rowConstraints>
<opaqueInsets>
<Insets />
</opaqueInsets>
<GridPane.margin>
<Insets />
</GridPane.margin>
<padding>
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
</padding>
</GridPane>
</children>
<columnConstraints>
<ColumnConstraints />
</columnConstraints>
<rowConstraints>
<RowConstraints />
</rowConstraints>
</GridPane>
</center>
</BorderPane>

View file

@ -0,0 +1,8 @@
com/example/CheckOutController.class
com/example/App.class
com/example/CartController.class
module-info.class
com/example/ShopController.class
com/example/RegisterController.class
com/example/LoginController.class
com/example/CartController$Item.class

View file

@ -0,0 +1,7 @@
/home/sage/Desktop/Programming/IMS-java/Code/ost/JAVA-FX-PROJECT/_javafx_website_task/src/main/java/com/example/RegisterController.java
/home/sage/Desktop/Programming/IMS-java/Code/ost/JAVA-FX-PROJECT/_javafx_website_task/src/main/java/com/example/CheckOutController.java
/home/sage/Desktop/Programming/IMS-java/Code/ost/JAVA-FX-PROJECT/_javafx_website_task/src/main/java/com/example/CartController.java
/home/sage/Desktop/Programming/IMS-java/Code/ost/JAVA-FX-PROJECT/_javafx_website_task/src/main/java/com/example/App.java
/home/sage/Desktop/Programming/IMS-java/Code/ost/JAVA-FX-PROJECT/_javafx_website_task/src/main/java/com/example/LoginController.java
/home/sage/Desktop/Programming/IMS-java/Code/ost/JAVA-FX-PROJECT/_javafx_website_task/src/main/java/com/example/ShopController.java
/home/sage/Desktop/Programming/IMS-java/Code/ost/JAVA-FX-PROJECT/_javafx_website_task/src/main/java/module-info.java