package src;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
public class ItemUI extends javax.swing.JFrame {
public ItemList theList = new ItemList();
public ItemList soldList = new ItemList();
public double totalSale = 0;
public ItemUI() {
initComponents();
panel1.setVisible(false);
panel2.setVisible(true);
panel3.setVisible(false);
panel4.setVisible(false);
}
@SuppressWarnings("unchecked")
private void initComponents(){
panel1 = new javax.swing.JPanel();
nameLabel = new javax.swing.JLabel();
ItemNumberLabel = new javax.swing.JLabel();
qtyLabel = new javax.swing.JLabel();
priceLabel = new javax.swing.JLabel();
priceField = new javax.swing.JTextField();
qtyField = new javax.swing.JTextField();
numberField = new javax.swing.JTextField();
nameField = new javax.swing.JTextField();
newButton = new javax.swing.JButton();
saveButton = new javax.swing.JButton();
backButton = new javax.swing.JButton();
exitButton = new javax.swing.JButton();
panel2 = new javax.swing.JPanel();
purchaseButton1 = new javax.swing.JButton();
stockButton = new javax.swing.JButton();
totalSaleButton = new javax.swing.JButton();
showBillLabel = new javax.swing.JLabel();
jButton1 = new javax.swing.JButton();
ItemButton = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
shopNameLabel = new javax.swing.JLabel();
jButton4 = new javax.swing.JButton();
jButton5 = new javax.swing.JButton();
panel3 = new javax.swing.JPanel();
hmButton = new javax.swing.JButton();
jScrollPane2 = new javax.swing.JScrollPane();
dataTable = new javax.swing.JTable();
panel4 = new javax.swing.JPanel();
jLabel2 = new javax.swing.JLabel();
purchaseLabel1 = new javax.swing.JLabel();
item1Label1 = new javax.swing.JLabel();
qtLabel1 = new javax.swing.JLabel();
pLabel1 = new javax.swing.JLabel();
subtotalLabel1 = new javax.swing.JLabel();
subtotal1Label1 = new javax.swing.JLabel();
p1Label1 = new javax.swing.JLabel();
qt1Label1 = new javax.swing.JLabel();
item2Label1 = new javax.swing.JLabel();
qt2Label2 = new javax.swing.JLabel();
qt3Label2 = new javax.swing.JLabel();
item3Label1 = new javax.swing.JLabel();
qt3Label3 = new javax.swing.JLabel();
qt2Label3 = new javax.swing.JLabel();
subtotal2Label1 = new javax.swing.JLabel();
subtotal3Label1 = new javax.swing.JLabel();
qt4Label2 = new javax.swing.JLabel();
subtotal4Label1 = new javax.swing.JLabel();
subtotal5Label1 = new javax.swing.JLabel();
subtotal6Label1 = new javax.swing.JLabel();
jSeparator2 = new javax.swing.JSeparator();
billLabel1 = new javax.swing.JLabel();
totalBillLabel1 = new javax.swing.JLabel();
qt6Label2 = new javax.swing.JLabel();
qt5Label2 = new javax.swing.JLabel();
qt4Label3 = new javax.swing.JLabel();
qt5Label3 = new javax.swing.JLabel();
qt6Label3 = new javax.swing.JLabel();
item6Label1 = new javax.swing.JLabel();
item5Label1 = new javax.swing.JLabel();
item4Label1 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Aplikasi Cash Register ");
setResizable(false);
panel1.setFocusable(false);
panel1.setMaximumSize(new java.awt.Dimension(460, 360));
panel1.setRequestFocusEnabled(false);
nameLabel.setText("Nama :");
ItemNumberLabel.setText("Kode Item :");
qtyLabel.setText("Kuantitas :");
priceLabel.setText("Harga :");
priceField.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
priceFieldActionPerformed(evt);
}
});
priceField.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
priceFieldKeyTyped(evt);
}
});
qtyField.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
qtyFieldActionPerformed(evt);
}
});
qtyField.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
qtyFieldKeyTyped(evt);
}
});
numberField.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusLost(java.awt.event.FocusEvent evt) {
numberFieldFocusLost(evt);
}
});
numberField.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
numberFieldActionPerformed(evt);
}
});
numberField.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
numberFieldKeyTyped(evt);
}
});
nameField.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
nameFieldActionPerformed(evt);
}
});
nameField.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
nameFieldKeyTyped(evt);
}
});
newButton.setText("Baru");
newButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
newButtonActionPerformed(evt);
}
});
saveButton.setText("Simpan");
saveButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
saveButtonActionPerformed(evt);
}
});
backButton.setText("Kembali");
backButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
backButtonActionPerformed(evt);
}
});
exitButton.setText("Keluar");
exitButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
exitButtonActionPerformed(evt);
}
});
javax.swing.GroupLayout panel1Layout = new javax.swing.GroupLayout(panel1);
panel1.setLayout(panel1Layout);
panel1Layout.setHorizontalGroup(
panel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panel1Layout.createSequentialGroup()
.addGroup(panel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(panel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(nameLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 46, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(ItemNumberLabel)
.addComponent(qtyLabel)
.addComponent(priceLabel))
.addGap(69, 69, 69)
.addGroup(panel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(priceField, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(qtyField, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(numberField, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(nameField, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(panel1Layout.createSequentialGroup()
.addGap(23, 23, 23)
.addComponent(newButton)
.addGap(18, 18, 18)
.addComponent(saveButton)
.addGap(18, 18, 18)
.addComponent(backButton)
.addGap(18, 18, 18)
.addComponent(exitButton, javax.swing.GroupLayout.PREFERRED_SIZE, 73, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(72, Short.MAX_VALUE))
);
panel1Layout.setVerticalGroup(
panel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(panel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(nameLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(nameField, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(panel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(ItemNumberLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(numberField, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(panel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(qtyLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(qtyField, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(panel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(priceLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(priceField, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(panel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(saveButton)
.addComponent(backButton)
.addComponent(newButton)
.addComponent(exitButton))
.addContainerGap(268, Short.MAX_VALUE))
);
panel2.setFocusable(false);
panel2.setRequestFocusEnabled(false);
shopNameLabel.setText(" -= McDonald =- ");
purchaseButton1.setText("Pembelian");
purchaseButton1.setFocusPainted(false);
purchaseButton1.setFocusable(false);
purchaseButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
purchaseButton1ActionPerformed(evt);
}
});
stockButton.setText("Tambah Stok");
stockButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
stockButtonActionPerformed(evt);
}
});
totalSaleButton.setText("Total Harga");
totalSaleButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
totalSaleButtonActionPerformed(evt);
}
});
jButton1.setText("Hapus Item");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
ItemButton.setText("Tambah Item");
ItemButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
ItemButtonActionPerformed(evt);
}
});
jButton2.setText("Daftar Item");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
jButton4.setText("Receipt");
jButton4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton4ActionPerformed(evt);
}
});
jButton5.setText("Keluar");
jButton5.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton5ActionPerformed(evt);
}
});
javax.swing.GroupLayout panel2Layout = new javax.swing.GroupLayout(panel2);
panel2.setLayout(panel2Layout);
panel2Layout.setHorizontalGroup(
panel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panel2Layout.createSequentialGroup()
.addContainerGap(25, Short.MAX_VALUE)
.addComponent(shopNameLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 356, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(25, 25, 25))
.addGroup(panel2Layout.createSequentialGroup()
.addGap(37, 37, 37)
.addGroup(panel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(panel2Layout.createSequentialGroup()
.addGroup(panel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panel2Layout.createSequentialGroup()
.addComponent(stockButton)
.addGap(18, 18, 18)
.addComponent(purchaseButton1))
.addComponent(showBillLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 141, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addComponent(totalSaleButton))
.addGroup(panel2Layout.createSequentialGroup()
.addGroup(panel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panel2Layout.createSequentialGroup()
.addComponent(ItemButton)
.addGap(18, 18, 18)
.addComponent(jButton1))
.addComponent(jButton4))
.addGap(18, 18, 18)
.addGroup(panel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jButton2)
.addComponent(jButton5))))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
panel2Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {ItemButton, jButton1, jButton2, purchaseButton1, stockButton, totalSaleButton});
panel2Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jButton4, jButton5});
panel2Layout.setVerticalGroup(
panel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panel2Layout.createSequentialGroup()
.addContainerGap()
.addComponent(shopNameLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(31, 31, 31)
.addGroup(panel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(stockButton)
.addComponent(purchaseButton1)
.addComponent(totalSaleButton))
.addGap(18, 18, 18)
.addComponent(showBillLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 34, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(26, 26, 26)
.addGroup(panel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton2)
.addComponent(jButton1)
.addComponent(ItemButton))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 58, Short.MAX_VALUE)
.addGroup(panel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton4)
.addComponent(jButton5))
.addGap(26, 26, 26))
);
panel2Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {ItemButton, jButton1, jButton2, purchaseButton1, stockButton, totalSaleButton});
hmButton.setText("Menu Utama");
hmButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
hmButtonActionPerformed(evt);
}
});
dataTable.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Kode Item", "Nama Item", "Kuantitas", "Harga"
})
{
Class[] types = new Class [] {
java.lang.Integer.class, java.lang.Object.class, java.lang.Object.class, java.lang.Object.class
};
public Class getColumnClass(int columnIndex) {
return types [columnIndex];
}
});
jScrollPane2.setViewportView(dataTable);
javax.swing.GroupLayout panel3Layout = new javax.swing.GroupLayout(panel3);
panel3.setLayout(panel3Layout);
panel3Layout.setHorizontalGroup(
panel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panel3Layout.createSequentialGroup()
.addContainerGap()
.addComponent(hmButton)
.addContainerGap(219, Short.MAX_VALUE))
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
);
panel3Layout.setVerticalGroup(
panel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panel3Layout.createSequentialGroup()
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 403, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(13, 13, 13)
.addComponent(hmButton)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
javax.swing.GroupLayout panel4Layout = new javax.swing.GroupLayout(panel4);
panel4.setLayout(panel4Layout);
panel4Layout.setHorizontalGroup(
panel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panel4Layout.createSequentialGroup()
.addGap(35, 35, 35)
.addGroup(panel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(item2Label1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(purchaseLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 101, Short.MAX_VALUE)
.addComponent(item1Label1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(item3Label1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(item4Label1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(item5Label1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(item6Label1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGap(18, 18, 18)
.addGroup(panel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(qtLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 71, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(qt5Label3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(qt4Label3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(qt3Label2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(qt2Label2, javax.swing.GroupLayout.PREFERRED_SIZE, 24, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(qt6Label3, javax.swing.GroupLayout.PREFERRED_SIZE, 34, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(qt1Label1, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(panel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(pLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 65, Short.MAX_VALUE)
.addComponent(p1Label1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(qt2Label3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(qt3Label3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(qt4Label2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(qt5Label2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(qt6Label2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(panel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panel4Layout.createSequentialGroup()
.addGroup(panel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(subtotal3Label1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(subtotal4Label1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(subtotal5Label1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(subtotal2Label1, javax.swing.GroupLayout.DEFAULT_SIZE, 65, Short.MAX_VALUE)
.addComponent(subtotal6Label1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGroup(panel4Layout.createSequentialGroup()
.addGroup(panel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(subtotal1Label1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(subtotalLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 68, Short.MAX_VALUE))
.addGap(21, 21, 21))))
.addGroup(panel4Layout.createSequentialGroup()
.addContainerGap()
.addGroup(panel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jSeparator2))
.addContainerGap())
.addGroup(panel4Layout.createSequentialGroup()
.addGap(168, 168, 168)
.addComponent(billLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 67, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(totalBillLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 114, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
panel4Layout.setVerticalGroup(
panel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panel4Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addGroup(panel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(purchaseLabel1)
.addComponent(qtLabel1)
.addComponent(pLabel1)
.addComponent(subtotalLabel1))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(panel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panel4Layout.createSequentialGroup()
.addComponent(item1Label1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(item2Label1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(item3Label1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(item4Label1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(item5Label1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(item6Label1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panel4Layout.createSequentialGroup()
.addComponent(qt1Label1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(qt2Label2, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(qt3Label2, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(qt4Label3, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(qt5Label3, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(qt6Label3, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(panel4Layout.createSequentialGroup()
.addComponent(p1Label1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(qt2Label3, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(qt3Label3, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(qt4Label2, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(qt5Label2, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(qt6Label2, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(panel4Layout.createSequentialGroup()
.addComponent(subtotal1Label1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(subtotal2Label1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(subtotal3Label1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(subtotal4Label1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(subtotal5Label1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(subtotal6Label1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(panel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(billLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(panel4Layout.createSequentialGroup()
.addComponent(totalBillLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGap(5, 5, 5)))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(panel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(panel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE)))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(panel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE)))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(panel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE)))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(panel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(panel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE)))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(panel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE)))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(panel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE)))
);
pack();
}
private void priceFieldActionPerformed(java.awt.event.ActionEvent evt) {
}
private void qtyFieldActionPerformed(java.awt.event.ActionEvent evt) {
}
private void numberFieldActionPerformed(java.awt.event.ActionEvent evt) {
}
private void nameFieldActionPerformed(java.awt.event.ActionEvent evt) {
}
public void reset() {
nameField.setText("");
numberField.setText("");
qtyField.setText("");
priceField.setText("");
nameField.requestFocus();
}
private void newButtonActionPerformed(java.awt.event.ActionEvent evt) {
reset();
}
private void saveButtonActionPerformed(java.awt.event.ActionEvent evt) {
String name;
int itemNumber;
int qty;
double price;
name = nameField.getText();
itemNumber = Integer.parseInt(numberField.getText());
qty = Integer.parseInt(qtyField.getText());
price = Double.parseDouble(priceField.getText());
Item current = theList.first;
while (current != null) {
if (itemNumber == current.itemNumber) {
JOptionPane.showMessageDialog(this, "Kode item sudah digunakan.");
return;
}
break;
}
if (price < 0) {
JOptionPane.showMessageDialog(null, "Harga tidak dapat negatif.");
return;
} else if (qty < 0) {
JOptionPane.showMessageDialog(null, "Kuantitas tidak dapat negatif.");
return;
} else {
theList.insertFirst(name, itemNumber, qty, price);
JOptionPane.showMessageDialog(null, "Item disimpan!");
}
reset();
}
private void backButtonActionPerformed(java.awt.event.ActionEvent evt) {
panel1.setVisible(false);
panel2.setVisible(true);
panel3.setVisible(false);
panel4.setVisible(false);
}
private void exitButtonActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0);
}
private void numberFieldFocusLost(java.awt.event.FocusEvent evt) {
}
private void purchaseButton1ActionPerformed(java.awt.event.ActionEvent evt) {
int itNum, qty;
double total = 0;
panel1.hide();
panel3.hide();
panel2.setVisible(true);
try {
String input = JOptionPane.showInputDialog("Masukkan Kode Item :");
itNum = Integer.parseInt(input);
String input1 = JOptionPane.showInputDialog("Masukkan Kuantitas :");
qty = Integer.parseInt(input1);
if (theList.isEmpty()) {
JOptionPane.showMessageDialog(null, "Maaf! Daftar item kosong.");
return;
}
int a = JOptionPane.showConfirmDialog(null, "Ingin membeli item lain?");
if (a == JOptionPane.YES_OPTION) {
this.purchaseButton1ActionPerformed(evt);
} else if (a == JOptionPane.CANCEL_OPTION) {
return;
}
if (qty > theList.find(itNum).qty) {
JOptionPane.showMessageDialog(null, "Maaf! Stok item habis");
return;
} else if (itNum != theList.find(itNum).itemNumber) {
JOptionPane.showMessageDialog(this, "Maaf! Item tidak ada dalam daftar.");
return;
} else {
theList.find(itNum).qty -= qty;
total += theList.find(itNum).price * qty;
totalSale += total;
}
showBillLabel.setText("Harga Pembelian : " + total);
if(a != 2){
soldList.insertFirst(theList.find(itNum).name, itNum, qty, theList.find(itNum).price*qty);
}
} catch (Exception ex) {
JOptionPane.showMessageDialog(this, "Maaf! Item tidak ada dalam daftar.");
}
}
private void stockButtonActionPerformed(java.awt.event.ActionEvent evt) {
int itNum, qty;
try {
String input = JOptionPane.showInputDialog("Masukkan Kode Item :");
itNum = Integer.parseInt(input);
String input1 = JOptionPane.showInputDialog("Masukkan Kuantitas :");
qty = Integer.parseInt(input1);
if (theList.isEmpty()) {
JOptionPane.showMessageDialog(this, "Daftar item kosong.");
} else {
theList.find(itNum).qty += qty;
JOptionPane.showMessageDialog(this, "Stok Ditambahkan!");
}
} catch (Exception ex) {
JOptionPane.showMessageDialog(this, ex);
}
}
private void totalSaleButtonActionPerformed(java.awt.event.ActionEvent evt) {
showBillLabel.setText("Total Pembelian : " + totalSale);
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
int itNum;
try {
String input = JOptionPane.showInputDialog("Masukkan Kode Item :");
itNum = Integer.parseInt(input);
if (theList.isEmpty()) {
JOptionPane.showMessageDialog(this, "Daftar Kosong!");
} else {
int it = theList.find(itNum).itemNumber;
if (it == itNum) {
theList.delete(it);
JOptionPane.showMessageDialog(this, "Item dihapus!");
} else {
JOptionPane.showMessageDialog(this, "Kode Item Invalid!");
}
}
} catch (Exception ex) {
JOptionPane.showMessageDialog(this, "Kode Item Invalid!");
}
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
if (theList.isEmpty()) {
JOptionPane.showMessageDialog(this, "Daftar Item kosong!");
} else {
panel1.setVisible(false);
panel2.setVisible(false);
panel3.setVisible(true);
panel4.setVisible(false);
Item current = theList.first;
DefaultTableModel model = (DefaultTableModel) dataTable.getModel();
model.setRowCount(0);
while (current != null) {
model.addRow(new Object[]{current.itemNumber, current.name, current.qty, current.price});
current = current.next;
}
}
}
private void ItemButtonActionPerformed(java.awt.event.ActionEvent evt) {
panel4.setVisible(false);
panel3.setVisible(false);
panel2.setVisible(false);
panel1.setVisible(true);
}
private void hmButtonActionPerformed(java.awt.event.ActionEvent evt) {
panel3.hide();
panel2.setVisible(true);
panel4.setVisible(false);
panel1.setVisible(false);
}
private void nameFieldKeyTyped(java.awt.event.KeyEvent evt) {
char input = evt.getKeyChar();
if (!(input < '0' || input > '9') && input != '\b') {
evt.consume();
JOptionPane.showMessageDialog(this, "Nama tidak dapat mengandung angka!");
}
}
private void numberFieldKeyTyped(java.awt.event.KeyEvent evt) {
char input = evt.getKeyChar();
if ((input < '0' || input > '9') && input != '\b') {
evt.consume();
JOptionPane.showMessageDialog(this, "Silakan masukkan angka!");
}
}
private void qtyFieldKeyTyped(java.awt.event.KeyEvent evt) {
char input = evt.getKeyChar();
if ((input < '0' || input > '9') && input != '\b') {
evt.consume();
JOptionPane.showMessageDialog(this, "Silakan masukkan angka!");
}
}
private void priceFieldKeyTyped(java.awt.event.KeyEvent evt) {
char input = evt.getKeyChar();
if ((input < '0' || input > '9') && (input != '\b' && input != '.')) {
evt.consume();
JOptionPane.showMessageDialog(this, "Silakan masukkan angka!");
}
}
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
if (soldList.isEmpty()) {
JOptionPane.showMessageDialog(this, "Daftar Item kosong!");
} else {
panel1.setVisible(false);
panel2.setVisible(false);
panel3.setVisible(true);
panel4.setVisible(false);
Item current = soldList.first;
DefaultTableModel model = (DefaultTableModel) dataTable.getModel();
model.setRowCount(0);
while (current != null) {
model.addRow(new Object[]{current.itemNumber, current.name, current.qty, current.price});
current = current.next;
}
}
}
private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0);
}
public static void main(String args[]) {
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(ItemUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(ItemUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(ItemUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(ItemUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new ItemUI().setVisible(true);
new ItemUI().panel2.setVisible(false);
new ItemUI().panel3.setVisible(false);
new ItemUI().panel4.setVisible(false);
}
});
}
private javax.swing.JButton ItemButton;
private javax.swing.JLabel ItemNumberLabel;
public javax.swing.JButton backButton;
private javax.swing.JLabel billLabel1;
public javax.swing.JTable dataTable;
public javax.swing.JButton exitButton;
private javax.swing.JButton hmButton;
private javax.swing.JLabel item1Label1;
private javax.swing.JLabel item2Label1;
private javax.swing.JLabel item3Label1;
private javax.swing.JLabel item4Label1;
private javax.swing.JLabel item5Label1;
private javax.swing.JLabel item6Label1;
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton4;
private javax.swing.JButton jButton5;
private javax.swing.JLabel jLabel2;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JSeparator jSeparator2;
public javax.swing.JTextField nameField;
private javax.swing.JLabel nameLabel;
public javax.swing.JButton newButton;
public javax.swing.JTextField numberField;
private javax.swing.JLabel p1Label1;
private javax.swing.JLabel pLabel1;
private javax.swing.JPanel panel1;
private javax.swing.JPanel panel2;
private javax.swing.JPanel panel3;
private javax.swing.JPanel panel4;
public javax.swing.JTextField priceField;
private javax.swing.JLabel priceLabel;
private javax.swing.JButton purchaseButton1;
private javax.swing.JLabel purchaseLabel1;
private javax.swing.JLabel qt1Label1;
private javax.swing.JLabel qt2Label2;
private javax.swing.JLabel qt2Label3;
private javax.swing.JLabel qt3Label2;
private javax.swing.JLabel qt3Label3;
private javax.swing.JLabel qt4Label2;
private javax.swing.JLabel qt4Label3;
private javax.swing.JLabel qt5Label2;
private javax.swing.JLabel qt5Label3;
private javax.swing.JLabel qt6Label2;
private javax.swing.JLabel qt6Label3;
private javax.swing.JLabel qtLabel1;
public javax.swing.JTextField qtyField;
private javax.swing.JLabel qtyLabel;
public javax.swing.JButton saveButton;
private javax.swing.JLabel shopNameLabel;
private javax.swing.JLabel showBillLabel;
private javax.swing.JButton stockButton;
private javax.swing.JLabel subtotal1Label1;
private javax.swing.JLabel subtotal2Label1;
private javax.swing.JLabel subtotal3Label1;
private javax.swing.JLabel subtotal4Label1;
private javax.swing.JLabel subtotal5Label1;
private javax.swing.JLabel subtotal6Label1;
private javax.swing.JLabel subtotalLabel1;
private javax.swing.JLabel totalBillLabel1;
private javax.swing.JButton totalSaleButton;
}