-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathInventoryManagementSystem.java
More file actions
140 lines (120 loc) · 4.53 KB
/
InventoryManagementSystem.java
File metadata and controls
140 lines (120 loc) · 4.53 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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
class InventoryItem {
String name;
int quantity;
double price;
InventoryItem(String name, int quantity, double price) {
this.name = name;
this.quantity = quantity;
this.price = price;
}
}
public class InventoryManagementSystem extends JFrame {
private JTextField nameField;
private JTextField quantityField;
private JTextField priceField;
private JTable inventoryTable;
private DefaultTableModel tableModel;
private ArrayList<InventoryItem> inventory;
public InventoryManagementSystem() {
inventory = new ArrayList<>();
// Setup JFrame
setTitle("Inventory Management System");
setSize(600, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
// Create input panel
JPanel inputPanel = new JPanel();
inputPanel.setLayout(new GridLayout(4, 2));
inputPanel.add(new JLabel("Item Name:"));
nameField = new JTextField();
inputPanel.add(nameField);
inputPanel.add(new JLabel("Quantity:"));
quantityField = new JTextField();
inputPanel.add(quantityField);
inputPanel.add(new JLabel("Price:"));
priceField = new JTextField();
inputPanel.add(priceField);
JButton addButton = new JButton("Add Item");
addButton.addActionListener(new AddItemListener());
inputPanel.add(addButton);
JButton updateButton = new JButton("Update Item");
updateButton.addActionListener(new UpdateItemListener());
inputPanel.add(updateButton);
JButton deleteButton = new JButton("Delete Item");
deleteButton.addActionListener(new DeleteItemListener());
inputPanel.add(deleteButton);
// Create table
String[] columnNames = {"Item Name", "Quantity", "Price"};
tableModel = new DefaultTableModel(columnNames, 0);
inventoryTable = new JTable(tableModel);
// Add components to JFrame
add(inputPanel, BorderLayout.NORTH);
add(new JScrollPane(inventoryTable), BorderLayout.CENTER);
}
private void updateTable() {
tableModel.setRowCount(0);
for (InventoryItem item : inventory) {
tableModel.addRow(new Object[]{item.name, item.quantity, item.price});
}
}
private class AddItemListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
String name = nameField.getText();
int quantity = Integer.parseInt(quantityField.getText());
double price = Double.parseDouble(priceField.getText());
inventory.add(new InventoryItem(name, quantity, price));
updateTable();
clearFields();
}
}
private class UpdateItemListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
int selectedRow = inventoryTable.getSelectedRow();
if (selectedRow != -1) {
String name = nameField.getText();
int quantity = Integer.parseInt(quantityField.getText());
double price = Double.parseDouble(priceField.getText());
InventoryItem item = inventory.get(selectedRow);
item.name = name;
item.quantity = quantity;
item.price = price;
updateTable();
clearFields();
} else {
JOptionPane.showMessageDialog(null, "Select an item to update.");
}
}
}
private class DeleteItemListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
int selectedRow = inventoryTable.getSelectedRow();
if (selectedRow != -1) {
inventory.remove(selectedRow);
updateTable();
clearFields();
} else {
JOptionPane.showMessageDialog(null, "Select an item to delete.");
}
}
}
private void clearFields() {
nameField.setText("");
quantityField.setText("");
priceField.setText("");
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
InventoryManagementSystem ims = new InventoryManagementSystem();
ims.setVisible(true);
});
}
}