Berikut Screenshot program Point of Sales :
Tampilan awal
Klik done lalu akan kembali ke frame awal.
berikut Source code
- import java.awt.event.*;
- import javax.swing.*;
- import java.awt.*;
- import java.util.*;
- import javax.swing.table.*;
- class MainGUI extends JFrame implements ActionListener {
- static MainGUI maingui;
- // create a frame
- static JFrame frame;
- // create components
- static JTextField labeltotal,labelcustom;
- static JButton iconedit, iconpurchase,tombolbikin, tombolselesai,tombol_list_barang;
- static JTable maintable;
- static DefaultTableModel model;
- static JScrollPane sp;
- static Boolean edit = false;
- // store operands
- static String s0 = "";
- static String st;
- static String[] columnnama = { "Nama", "Harga", "kategori", "Stock", "Keterangan", "Jumlah" };
- // create an itemframe
- static JFrame itemframe;
- // create components
- static JTextField labelNama,labelkategori,labelHarga, labelStock, labeldesc;
- static DefaultListModel listModel;
- static JButton tombolExit, tombolSimpan, tomboldelete, tombolExitpurchase, tombolclear;
- static Boolean edititem,purchase;
- static JFrame purchaseframe;
- static JLabel currentsale;
- static JTextField labelpurchasetotal;
- static JTable purchasetable;
- static JScrollPane purchasesp;
- static DefaultTableModel purchasemodel;
- static String[] purchasecolumnnama = { "Nama", "Jumlah", "Harga", "Delete" };
- // default constructor
- MainGUI()
- {
- st = "0";
- }
- // main function
- public static void create()
- {
- // create a frame
- frame = new JFrame("Point Of Sales");
- // create a object of class
- maingui = new MainGUI();
- // create a textfield
- labeltotal = new JTextField(24);
- labeltotal.setText("Charge Rp. 0");
- labelcustom = new JTextField(24);
- labelcustom.setText("Rp. 0");
- // set the textfield to non editable
- labeltotal.setEditable(false);
- labelcustom.setEditable(false);
- ImageIcon imageIcon = new ImageIcon("resources/search-button-icon.png");
- Image image = imageIcon.getImage();
- Image newimg = image.getScaledInstance(18, 18, Image.SCALE_SMOOTH);
- imageIcon = new ImageIcon(newimg);
- imageIcon = new ImageIcon("resources/edit-button-icon.jpg");
- image = imageIcon.getImage();
- newimg = image.getScaledInstance(16, 16, Image.SCALE_SMOOTH);
- imageIcon = new ImageIcon(newimg);
- iconedit = new JButton("", imageIcon);
- iconedit.setActionCommand("edit");
- iconedit.setPreferredSize(new Dimension(240, 18));
- iconedit.setBorder(BorderFactory.createEmptyBorder());
- iconedit.setBackground(Color.PINK);
- //create menubutton
- tombol_list_barang = new JButton("Barang");
- tombol_list_barang.setBackground(Color.PINK);
- tombol_list_barang.setPreferredSize(new Dimension(240, 50));
- tombolbikin = new JButton("Buat Barang Baru");
- tombolbikin.setPreferredSize(new Dimension(240, 50));
- tombolbikin.setBackground(Color.PINK);
- tombolselesai = new JButton("Selesai");
- tombolselesai.setPreferredSize(new Dimension(240, 50));
- tombolselesai.setBackground(Color.PINK);
- imageIcon = new ImageIcon("resources/print.png");
- image = imageIcon.getImage();
- newimg = image.getScaledInstance(50, 50, Image.SCALE_SMOOTH);
- imageIcon = new ImageIcon(newimg);
- iconpurchase = new JButton("", imageIcon);
- iconpurchase.setActionCommand("Purchase");
- iconpurchase.setPreferredSize(new Dimension(240, 50));
- iconpurchase.setBackground(Color.PINK);
- // create a panel
- JPanel panel = new JPanel();
- // Initializing the JTable
- model = new DefaultTableModel(columnnama, 0);
- maintable = new JTable(model);
- maintable.setTableHeader(null);
- maintable.setShowGrid(false);
- maintable.setDefaultEditor(Object.class, null);
- maintable.getColumnModel().getColumn(2).setMinWidth(0);
- maintable.getColumnModel().getColumn(2).setMaxWidth(0);
- maintable.getColumnModel().getColumn(2).setWidth(0);
- maintable.getColumnModel().getColumn(3).setMinWidth(0);
- maintable.getColumnModel().getColumn(3).setMaxWidth(0);
- maintable.getColumnModel().getColumn(3).setWidth(0);
- maintable.getColumnModel().getColumn(4).setMinWidth(0);
- maintable.getColumnModel().getColumn(4).setMaxWidth(0);
- maintable.getColumnModel().getColumn(4).setWidth(0);
- maintable.getColumnModel().getColumn(5).setMinWidth(0);
- maintable.getColumnModel().getColumn(5).setMaxWidth(0);
- maintable.getColumnModel().getColumn(5).setWidth(0);
- maintable.addMouseListener(new MouseAdapter()
- {
- public void mouseClicked(MouseEvent event)
- {
- if (!edit)
- {
- int row = maintable.rowAtPoint(event.getPoint());
- int col = 1;
- int te = 0;
- s0 = maintable.getValueAt(row, col).toString();
- te = (Integer.parseInt(s0) + Integer.parseInt(st));
- st = Integer.toString(te);
- labeltotal.setText("Charge Rp. " + st);
- model.setValueAt(Integer.parseInt(maintable.getValueAt(row, 5).toString()) + 1, row, 5);
- maintable.setModel(model);
- }
- else
- {
- createItemGUI("edit", maintable.rowAtPoint(event.getPoint()));
- }
- }
- }
- );
- // adding it to JScrollPane
- sp = new JScrollPane(maintable);
- sp.setPreferredSize(new Dimension(240, 150));
- // add action listeners
- iconedit.addActionListener(maingui);
- iconpurchase.addActionListener(maingui);
- tombol_list_barang.addActionListener(maingui);
- tombolbikin.addActionListener(maingui);
- tombolselesai.addActionListener(maingui);
- // add elements to panel
- panel.add(labeltotal);
- panel.add(tombol_list_barang
- );
- panel.add(iconedit);
- panel.add(tombolbikin);
- panel.add(sp);
- panel.add(tombolselesai);
- panel.add(iconpurchase);
- panel.setBackground(new java.awt.Color(238,105,100));
- // add panel to frame
- frame.add(panel);
- frame.setSize(280, 500);
- frame.setBackground(new java.awt.Color(238,105,100));
- maingui.startLibrary();
- frame.show();
- }
- public static void createItemGUI(String buffer, int row)
- {
- if(buffer.compareTo("new") == 0)
- {
- edititem = false;
- }
- else
- {
- edititem = true;
- }
- if(!edititem)
- {
- // create an itemframe
- itemframe = new JFrame("Buat Barang Baru");
- }
- else
- {
- itemframe = new JFrame("Edit Item");
- }
- // create a textfield
- labelNama = new JTextField(24);
- labelHarga = new JTextField(24);
- labelkategori = new JTextField(24);
- labelStock = new JTextField(24);
- labeldesc = new JTextField(24);
- if(edititem)
- {
- labelNama.setText(maintable.getValueAt(row, 0).toString());
- labelHarga.setText(maintable.getValueAt(row, 1).toString());
- labelkategori.setText(maintable.getValueAt(row, 2).toString());
- labelStock.setText(maintable.getValueAt(row, 3).toString());
- labeldesc.setText(maintable.getValueAt(row, 4).toString());
- }
- else
- {
- labelNama.setText("Item Nama");
- labelHarga.setText("Harga");
- labelkategori.setText("kategori");
- labelStock.setText("Stock");
- labeldesc.setText("Keterangan");
- }
- labelNama.addMouseListener(new MouseAdapter()
- {
- public void mouseClicked(MouseEvent e)
- {
- if(labelNama.getText().equals("Item Nama"))
- {
- labelNama.setText("");
- }
- }
- }
- );
- labelkategori.addMouseListener(new MouseAdapter()
- {
- public void mouseClicked(MouseEvent e)
- {
- if(labelkategori.getText().equals("kategori"))
- {
- labelkategori.setText("");
- }
- }
- }
- );
- labelHarga.addMouseListener(new MouseAdapter()
- {
- public void mouseClicked(MouseEvent e)
- {
- if(labelHarga.getText().equals("Harga"))
- {
- labelHarga.setText("");
- }
- }
- }
- );
- labelStock.addMouseListener(new MouseAdapter()
- {
- public void mouseClicked(MouseEvent e)
- {
- if(labelStock.getText().equals("Stock"))
- {
- labelStock.setText("");
- }
- }
- }
- );
- labeldesc.addMouseListener(new MouseAdapter()
- {
- public void mouseClicked(MouseEvent e)
- {
- if(labeldesc.getText().equals("Keterangan"))
- {
- labeldesc.setText("");
- }
- }
- }
- );
- tombolExit = new JButton("X");
- tombolExit.setPreferredSize(new Dimension(50, 50));
- tombolExit.setBackground(Color.PINK);
- tombolSimpan = new JButton("Simpan");
- tombolSimpan.setPreferredSize(new Dimension(190, 50));
- tombolSimpan.setBackground(Color.PINK);
- tomboldelete = new JButton("Hapus");
- tomboldelete.setPreferredSize(new Dimension(240, 50));
- tomboldelete.setBackground(Color.PINK);
- // create a itempanel
- JPanel itempanel = new JPanel();
- // add action listeners
- tombolSimpan.addActionListener(maingui);
- tombolExit.addActionListener(maingui);
- tomboldelete.addActionListener(maingui);
- itempanel.add(labelNama);
- itempanel.add(labelkategori);
- itempanel.add(labelHarga);
- itempanel.add(labelStock);
- itempanel.add(labeldesc);
- itempanel.add(tombolExit);
- itempanel.add(tombolSimpan);
- itempanel.setBackground(new java.awt.Color(238,105,100));
- if(edititem)
- {
- itempanel.add(tomboldelete);
- }
- // add itempanel to itemframe
- itemframe.add(itempanel);
- itemframe.setSize(300, 500);
- itemframe.setBackground(new java.awt.Color(238,105,100));
- itemframe.show();
- }
- public void createPurchaseGUI()
- {
- int total = 0;
- Object[] object = new Object[4];
- purchaseframe = new JFrame("Purchase");
- purchaseframe.setBackground(new java.awt.Color(238,105,100));
- purchase = true;
- currentsale = new JLabel("CURRENT SALE");
- labelpurchasetotal = new JTextField(24);
- labelpurchasetotal.setEditable(false);
- labelpurchasetotal.setText("Harga Total Rp. " + st);
- labelpurchasetotal.setBackground(Color.PINK);
- //Initializing the JTable
- purchasemodel = new DefaultTableModel(purchasecolumnnama, 0);
- for(int i = 0; i < maintable.getRowCount(); i++)
- {
- if(Integer.parseInt(maintable.getValueAt(i, 5).toString()) > 0)
- {
- object[0] = maintable.getValueAt(i, 0).toString();
- object[1] = ("x" + maintable.getValueAt(i, 5).toString());
- object[2] = Integer.parseInt(maintable.getValueAt(i, 1).toString()) * Integer.parseInt(maintable.getValueAt(i, 5).toString());
- object[3] = "X";
- total = total + Integer.parseInt(maintable.getValueAt(i, 1).toString()) * Integer.parseInt(maintable.getValueAt(i, 5).toString());
- purchasemodel.addRow(object);
- }
- }
- purchasetable = new JTable(purchasemodel);
- purchasetable.getColumnModel().getColumn(3).setMinWidth(11);
- purchasetable.getColumnModel().getColumn(3).setMaxWidth(11);
- purchasetable.getColumnModel().getColumn(3).setWidth(11);
- purchasetable.setTableHeader(null);
- purchasetable.setShowGrid(false);
- purchasetable.setDefaultEditor(Object.class, null);
- purchasetable.addMouseListener(new MouseAdapter()
- {
- public void mouseClicked(MouseEvent event)
- {
- int col = purchasetable.columnAtPoint(event.getPoint());
- int row = purchasetable.rowAtPoint(event.getPoint());
- if (col == 3)
- {
- int te = 0;
- s0 = purchasetable.getValueAt(row, 2).toString();
- te = (Integer.parseInt(st) - Integer.parseInt(s0));
- st = Integer.toString(te);
- labelpurchasetotal.setText("Harga Total Rp. " + st);
- labeltotal.setText("Harga Total Rp. " + st);
- for (int i = 0; i < model.getRowCount(); i++)
- {
- if(model.getValueAt(i, 0) == purchasetable.getValueAt(row, 0))
- {
- model.setValueAt(0, i, 5);
- }
- }
- int numRows = purchasetable.getSelectedRows().length;
- for(int i = 0; i < numRows ; i++)
- {
- purchasemodel.removeRow(purchasetable.getSelectedRow());
- }
- purchasetable.setModel(purchasemodel);
- }
- }
- }
- );
- purchasesp = new JScrollPane(purchasetable);
- purchasesp.setPreferredSize(new Dimension(240, 150));
- tombolExitpurchase = new JButton("X");
- tombolExitpurchase.setPreferredSize(new Dimension(50, 50));
- tombolExitpurchase.setBackground(Color.PINK);
- tombolclear = new JButton("Clear Sale");
- tombolclear.setPreferredSize(new Dimension(190, 50));
- tombolclear.setBackground(Color.PINK);
- JPanel purchasepanel = new JPanel();
- tombolclear.addActionListener(maingui);
- tombolExitpurchase.addActionListener(maingui);
- purchasepanel.add(currentsale);
- purchasepanel.add(purchasesp);
- purchasepanel.add(labelpurchasetotal);
- purchasepanel.add(tombolExitpurchase);
- purchasepanel.add(tombolclear);
- purchasepanel.setBackground(new java.awt.Color(238,105,100));
- purchaseframe.add(purchasepanel);
- purchaseframe.setSize(300, 500);
- purchaseframe.setBackground(new java.awt.Color(238,105,100));
- purchaseframe.show();
- }
- public void startLibrary()
- {
- tombol_list_barang.setEnabled(false);
- labelcustom.setVisible(false);
- iconedit.setVisible(true);
- tombolbikin.setVisible(false);
- sp.setVisible(true);
- tombolselesai.setVisible(false);
- iconpurchase.setVisible(true);
- }
- public void starteditLibrary()
- {
- tombol_list_barang.setEnabled(false);
- labelcustom.setVisible(false);
- iconedit.setVisible(false);
- tombolbikin.setVisible(true);
- iconpurchase.setVisible(false);
- tombolselesai.setVisible(true);
- }
- public void startCustom()
- {
- s0 = "";
- labelcustom.setText("Rp. 0");
- tombol_list_barang.setEnabled(true);
- labelcustom.setVisible(true);
- iconedit.setVisible(false);
- tombolbikin.setVisible(false);
- sp.setVisible(false);
- iconpurchase.setVisible(false);
- }
- public void actionPerformed(ActionEvent event)
- {
- String s = event.getActionCommand();
- // if the value is a number
- if ((s.charAt(0) >= '0' && s.charAt(0) <= '9')) {
- // if operand is present then add to second no
- s0 = s0 + s;
- // set the value of text
- labelcustom.setText("Rp. " + s0);
- }
- else if (s.equals("C")) {
- s0 = "";
- // set the value of text
- labelcustom.setText("Rp. 0");
- }
- else if (s.charAt(0) == '+') {
- // if there was no operand
- int te = 0;
- if(s0 == "")
- {
- s0 = "0";
- }
- te = (Integer.parseInt(s0) + Integer.parseInt(st));
- // convert it to string
- st = Integer.toString(te);
- s0 = "";
- // set the value of text
- labelcustom.setText("Rp. 0");
- labelcustom.setBackground(Color.PINK);
- labeltotal.setText("Charge Rp. " + st);
- labeltotal.setBackground(Color.PINK);
- }
- else if (s.equals("Library"))
- {
- startLibrary();
- }
- else if (s.equals("Custom"))
- {
- startCustom();
- }
- else if (s.equals("edit"))
- {
- starteditLibrary();
- edit = true;
- }
- else if (s.equals("Purchase"))
- {
- createPurchaseGUI();
- frame.dispose();
- }
- else if (s.equals("Selesai"))
- {
- startLibrary();
- edit = false;
- }
- else if (s.equals("Buat Barang Baru"))
- {
- // frame.dispose();
- createItemGUI("new", 0);
- }
- else if (s.equals("Simpan"))
- {
- Object[] row = new Object[6];
- row[0] = (String)labelNama.getText();
- row[1] = labelHarga.getText();
- row[2] = (String)labelkategori.getText();
- row[3] = (String)labelStock.getText();
- row[4] = (String)labeldesc.getText();
- row[5] = 0;
- model.addRow(row);
- maintable.setModel(model);
- if(edititem)
- {
- int numRows = maintable.getSelectedRows().length;
- for(int i = 0; i < numRows ; i++)
- {
- model.removeRow(maintable.getSelectedRow());
- }
- }
- itemframe.dispose();
- // frame.show();
- }
- else if (s.equals("X"))
- {
- if(purchase == true)
- {
- purchaseframe.dispose();
- frame.show();
- }
- else
- {
- itemframe.dispose();
- }
- }
- else if (s.equals("Hapus"))
- {
- int numRows = maintable.getSelectedRows().length;
- for(int i = 0; i < numRows ; i++)
- {
- model.removeRow(maintable.getSelectedRow());
- }
- itemframe.dispose();
- }
- else if (s.equals("Clear Sale"))
- {
- labelcustom.setText("Rp. 0");
- labeltotal.setText("Charge Rp. 0");
- labelpurchasetotal.setText("Charge Rp. 0");
- s0 = "";
- st = "0";
- for (int i = 0; i < purchasemodel.getRowCount(); i++)
- {
- purchasemodel.removeRow(i);
- }
- purchasetable.setModel(purchasemodel);
- for (int i = 0; i < model.getRowCount(); i++)
- {
- model.setValueAt(0, i, 5);
- }
- }
- }
- }
Link video youtube :Link Youtube