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; }