Repository navigation
Expand file tree
/
Copy pathJavaFXDemo17.java
More file actions
119 lines (95 loc) · 3.9 KB
/
Copy pathJavaFXDemo17.java
File metadata and controls
119 lines (95 loc) · 3.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
package javafxdemo17;
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class JavaFXDemo17 extends Application{
Stage window;
TableView<Product> table;
TextField nameInput, priceInput, quantityInput;
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception{
window = primaryStage;
window.setTitle("thenewboston - JavaFX");
//NameColum
TableColumn<Product, String> nameColumn = new TableColumn("Name");
nameColumn.setMinWidth(200);
nameColumn.setCellValueFactory(new PropertyValueFactory<>("name"));
//NameColum
TableColumn<Product, Double> priceColumn = new TableColumn("Price");
priceColumn.setMinWidth(100);
priceColumn.setCellValueFactory(new PropertyValueFactory<>("Price"));
//NameColum
TableColumn<Product, String> quantityColumn = new TableColumn("Quantity");
quantityColumn.setMinWidth(100);
quantityColumn.setCellValueFactory(new PropertyValueFactory<>("Quantity"));
//inputs
//nameInput
nameInput = new TextField();
nameInput.setPromptText("Name");
nameInput.setMinWidth(100);
//priceInput
priceInput = new TextField();
priceInput.setPromptText("Price");
//quantityInput
quantityInput = new TextField();
quantityInput.setPromptText("Quantity");
//Button
Button add = new Button("Add");
add.setOnAction(e -> addButtonClicked());
Button delete = new Button("Delete");
delete.setOnAction(e -> deleteButtonClicked());
//HBox
HBox hBox = new HBox();
hBox.setPadding(new Insets(10, 10, 10, 10));
hBox.setSpacing(10);
hBox.getChildren().addAll(nameInput, priceInput, quantityInput, add, delete);
//table
table = new TableView<>();
table.setItems(getProduct());
table.getColumns().addAll(nameColumn, priceColumn, quantityColumn);
VBox vBox = new VBox();
vBox.getChildren().addAll(table, hBox);
Scene scene = new Scene(vBox);
window.setScene(scene);
window.show();
}
//get all of the products
public ObservableList<Product> getProduct(){
ObservableList<Product> products = FXCollections.observableArrayList();
products.add(new Product("Laptop", 859.00, 20));
products.add(new Product("Bouncy Ball", 2.49, 198));
products.add(new Product("Toilet", 99.00, 74));
products.add(new Product("The Notebook DVD", 19.99, 12));
products.add(new Product("Corn", 1.49, 846));
return products;
}
public void addButtonClicked(){
Product product = new Product();
product.setName(nameInput.getText());
product.setPrice(Double.parseDouble(priceInput.getText()));
product.setQuantity(Integer.parseInt(quantityInput.getText()));
table.getItems().add(product);
nameInput.clear();
priceInput.clear();
quantityInput.clear();
}
public void deleteButtonClicked(){
ObservableList<Product> productSelected, allProducts;
allProducts = table.getItems();
productSelected = table.getSelectionModel().getSelectedItems();
productSelected.forEach(allProducts::remove);
}
}