Advertisement
Guest User

Untitled

a guest
Dec 11th, 2019
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 18.12 KB | None | 0 0
  1. import java.awt.event.*;
  2. import javax.swing.*;
  3. import java.awt.*;
  4. import java.util.*;
  5. import javax.swing.table.*;
  6.  
  7. class MainGUI extends JFrame implements ActionListener {
  8.   static MainGUI maingui;
  9.  
  10.   // create a frame
  11.     static JFrame frame;
  12.  
  13.     // create components
  14.     static JTextField labeltotal;
  15.  
  16.     static JTextField labelcustom;
  17.   static JButton iconedit, iconpurchase;
  18.     static JButton butttonlib;
  19.   static JButton buttoncreate, buttondone;
  20.   static JTable maintable;
  21.   static DefaultTableModel model;
  22.   static JScrollPane sp;
  23.  
  24.   static Boolean edit = false;
  25.  
  26.     // store operands
  27.     static String s0 = "";
  28.   static String st;
  29.  
  30.   static String[] columnNames = { "Name", "Price", "Category", "SKU", "Description", "Count" };
  31.  
  32.   // create an itemframe
  33.     static JFrame itemframe;
  34.  
  35.     // create components
  36.   static JTextField labelname;
  37.   static DefaultListModel listModel;
  38.   static JTextField labelcategory;
  39.     static JTextField labelprice;
  40.   static JTextField labelSKU;
  41.   static JTextField labeldesc;
  42.  
  43.   static JButton buttonexit, buttonsave, buttondelete;
  44.  
  45.   static Boolean edititem;  
  46.  
  47.   static Boolean purchase;  
  48.   static JFrame purchaseframe;
  49.   static JLabel currentsale;
  50.     static JTextField labelpurchasetotal;
  51.   static JButton buttonexitpurchase, buttonclear;
  52.   static JTable purchasetable;
  53.   static JScrollPane purchasesp;
  54.   static DefaultTableModel purchasemodel;
  55.   static String[] purchasecolumnNames = { "Name", "Count", "Price", "Delete" };
  56.  
  57.     // default constructor
  58.     MainGUI()
  59.     {
  60.     st = "0";
  61.     }
  62.  
  63.     // main function
  64.     public static void create()
  65.     {
  66.         // create a frame
  67.         frame = new JFrame("Point Of Sales");
  68.  
  69.         // create a object of class
  70.         maingui = new MainGUI();
  71.  
  72.         // create a textfield
  73.         labeltotal = new JTextField(24);
  74.         labeltotal.setText("Charge Rp. 0");
  75.  
  76.         labelcustom = new JTextField(24);
  77.         labelcustom.setText("Rp. 0");
  78.  
  79.         // set the textfield to non editable
  80.         labeltotal.setEditable(false);
  81.         labelcustom.setEditable(false);
  82.  
  83.     ImageIcon imageIcon = new ImageIcon("resources/search-button-icon.png");
  84.     Image image = imageIcon.getImage();
  85.     Image newimg = image.getScaledInstance(18, 18, Image.SCALE_SMOOTH);
  86.     imageIcon = new ImageIcon(newimg);
  87.    
  88.  
  89.  
  90.     imageIcon = new ImageIcon("resources/edit-button-icon.jpg");
  91.     image = imageIcon.getImage();
  92.     newimg = image.getScaledInstance(16, 16, Image.SCALE_SMOOTH);
  93.     imageIcon = new ImageIcon(newimg);
  94.  
  95.     iconedit = new JButton("", imageIcon);
  96.     iconedit.setActionCommand("edit");
  97.     iconedit.setPreferredSize(new Dimension(240, 18));
  98.     iconedit.setBorder(BorderFactory.createEmptyBorder());
  99.     iconedit.setBackground(Color.PINK);
  100.  
  101.     //create menubutton
  102.     butttonlib = new JButton("Daftar Barang");
  103.     butttonlib.setBackground(Color.PINK);
  104.     butttonlib.setPreferredSize(new Dimension(240, 50));
  105.  
  106.  
  107.  
  108.     buttoncreate = new JButton("CREATE NEW ITEM");
  109.     buttoncreate.setPreferredSize(new Dimension(240, 50));
  110.     buttoncreate.setBackground(Color.PINK);
  111.     buttondone = new JButton("DONE");
  112.     buttondone.setPreferredSize(new Dimension(240, 50));
  113.     buttondone.setBackground(Color.PINK);
  114.    
  115.     imageIcon = new ImageIcon("resources/print.png");
  116.     image = imageIcon.getImage();
  117.     newimg = image.getScaledInstance(50, 50, Image.SCALE_SMOOTH);
  118.     imageIcon = new ImageIcon(newimg);
  119.    
  120.     iconpurchase = new JButton("", imageIcon);
  121.    
  122.     iconpurchase.setActionCommand("Purchase");
  123.     iconpurchase.setPreferredSize(new Dimension(240, 50));
  124.     iconpurchase.setBackground(Color.PINK);
  125.         // create a panel
  126.         JPanel panel = new JPanel();
  127.  
  128.     // Initializing the JTable
  129.     model = new DefaultTableModel(columnNames, 0);
  130.     maintable = new JTable(model);
  131.  
  132.     maintable.setTableHeader(null);
  133.     maintable.setShowGrid(false);
  134.     maintable.setDefaultEditor(Object.class, null);
  135.     maintable.getColumnModel().getColumn(2).setMinWidth(0);
  136.     maintable.getColumnModel().getColumn(2).setMaxWidth(0);
  137.     maintable.getColumnModel().getColumn(2).setWidth(0);
  138.     maintable.getColumnModel().getColumn(3).setMinWidth(0);
  139.     maintable.getColumnModel().getColumn(3).setMaxWidth(0);
  140.     maintable.getColumnModel().getColumn(3).setWidth(0);
  141.     maintable.getColumnModel().getColumn(4).setMinWidth(0);
  142.     maintable.getColumnModel().getColumn(4).setMaxWidth(0);
  143.     maintable.getColumnModel().getColumn(4).setWidth(0);
  144.     maintable.getColumnModel().getColumn(5).setMinWidth(0);
  145.     maintable.getColumnModel().getColumn(5).setMaxWidth(0);
  146.     maintable.getColumnModel().getColumn(5).setWidth(0);
  147.  
  148.     maintable.addMouseListener(new MouseAdapter()
  149.     {
  150.       public void mouseClicked(MouseEvent event)
  151.       {
  152.         if (!edit)
  153.         {
  154.           int row = maintable.rowAtPoint(event.getPoint());
  155.           int col = 1;
  156.           int te = 0;
  157.           s0 = maintable.getValueAt(row, col).toString();
  158.           te = (Integer.parseInt(s0) + Integer.parseInt(st));
  159.           st = Integer.toString(te);
  160.           labeltotal.setText("Charge Rp. " + st);
  161.  
  162.           model.setValueAt(Integer.parseInt(maintable.getValueAt(row, 5).toString()) + 1, row, 5);
  163.  
  164.           maintable.setModel(model);
  165.         }
  166.         else
  167.         {
  168.           createItemGUI("edit", maintable.rowAtPoint(event.getPoint()));
  169.         }
  170.       }
  171.     }
  172.     );
  173.  
  174.     // adding it to JScrollPane
  175.     sp = new JScrollPane(maintable);
  176.     sp.setPreferredSize(new Dimension(240, 150));
  177.        
  178.     // add action listeners
  179.     iconedit.addActionListener(maingui);    
  180.     iconpurchase.addActionListener(maingui);    
  181.     butttonlib.addActionListener(maingui);  
  182.    
  183.  
  184.         buttoncreate.addActionListener(maingui);
  185.     buttondone.addActionListener(maingui);
  186.  
  187.         // add elements to panel
  188.         panel.add(labeltotal);
  189.         panel.add(butttonlib);
  190.         panel.add(iconedit);
  191.  
  192.         panel.add(buttoncreate);
  193.         panel.add(sp);
  194.         panel.add(buttondone);
  195.         panel.add(iconpurchase);
  196.  
  197.         panel.setBackground(new java.awt.Color(238,105,100));
  198.  
  199.         // add panel to frame
  200.         frame.add(panel);
  201.  
  202.         frame.setSize(280, 500);
  203.         frame.setBackground(new java.awt.Color(238,105,100));
  204.         maingui.startLibrary();
  205.         frame.show();
  206.   }
  207.  
  208.   public static void createItemGUI(String buffer, int row)
  209.     {
  210.     if(buffer.compareTo("new") == 0)
  211.     {
  212.       edititem = false;
  213.     }
  214.     else
  215.     {
  216.       edititem = true;
  217.     }
  218.  
  219.     if(!edititem)
  220.     {
  221.       // create an itemframe
  222.       itemframe = new JFrame("Create New Item");
  223.     }
  224.     else
  225.     {
  226.       itemframe = new JFrame("Edit Item");
  227.     }
  228.         // create a textfield
  229.  
  230.     labelname = new JTextField(24);
  231.     labelprice = new JTextField(24);
  232.     labelcategory = new JTextField(24);
  233.     labelSKU = new JTextField(24);
  234.     labeldesc = new JTextField(24);
  235.     if(edititem)
  236.     {
  237.       labelname.setText(maintable.getValueAt(row, 0).toString());
  238.       labelprice.setText(maintable.getValueAt(row, 1).toString());
  239.       labelcategory.setText(maintable.getValueAt(row, 2).toString());
  240.       labelSKU.setText(maintable.getValueAt(row, 3).toString());
  241.       labeldesc.setText(maintable.getValueAt(row, 4).toString());
  242.     }
  243.     else
  244.     {
  245.       labelname.setText("Item Name");
  246.       labelprice.setText("Price");
  247.       labelcategory.setText("Category");
  248.       labelSKU.setText("SKU");
  249.       labeldesc.setText("Description");  
  250.     }
  251.    
  252.     labelname.addMouseListener(new MouseAdapter()
  253.     {
  254.         public void mouseClicked(MouseEvent e)
  255.         {
  256.           if(labelname.getText().equals("Item Name"))
  257.           {
  258.             labelname.setText("");
  259.           }          
  260.         }
  261.     }
  262.     );
  263.    
  264.     labelcategory.addMouseListener(new MouseAdapter()
  265.     {
  266.         public void mouseClicked(MouseEvent e)
  267.         {
  268.           if(labelcategory.getText().equals("Category"))
  269.           {
  270.             labelcategory.setText("");
  271.           }          
  272.         }
  273.     }
  274.     );
  275.  
  276.     labelprice.addMouseListener(new MouseAdapter()
  277.     {
  278.         public void mouseClicked(MouseEvent e)
  279.         {
  280.           if(labelprice.getText().equals("Price"))
  281.           {
  282.             labelprice.setText("");
  283.           }          
  284.         }
  285.     }
  286.     );
  287.        
  288.     labelSKU.addMouseListener(new MouseAdapter()
  289.     {
  290.         public void mouseClicked(MouseEvent e)
  291.         {
  292.           if(labelSKU.getText().equals("SKU"))
  293.           {
  294.             labelSKU.setText("");
  295.           }          
  296.         }
  297.     }
  298.     );
  299.    
  300.     labeldesc.addMouseListener(new MouseAdapter()
  301.     {
  302.         public void mouseClicked(MouseEvent e)
  303.         {
  304.           if(labeldesc.getText().equals("Description"))
  305.           {
  306.             labeldesc.setText("");
  307.           }          
  308.         }
  309.     }
  310.     );
  311.  
  312.     buttonexit = new JButton("X");
  313.     buttonexit.setPreferredSize(new Dimension(50, 50));
  314.     buttonexit.setBackground(Color.PINK);
  315.  
  316.         buttonsave = new JButton("SAVE");
  317.     buttonsave.setPreferredSize(new Dimension(190, 50));
  318.     buttonsave.setBackground(Color.PINK);
  319.  
  320.     buttondelete = new JButton("DELETE");
  321.     buttondelete.setPreferredSize(new Dimension(240, 50));
  322.     buttondelete.setBackground(Color.PINK);
  323.  
  324.     // create a itempanel
  325.         JPanel itempanel = new JPanel();
  326.        
  327.     // add action listeners
  328.         buttonsave.addActionListener(maingui);
  329.     buttonexit.addActionListener(maingui);
  330.     buttondelete.addActionListener(maingui);
  331.  
  332.         // add elements to itempanel
  333.     itempanel.add(labelname);
  334.     itempanel.add(labelcategory);
  335.     itempanel.add(labelprice);
  336.     itempanel.add(labelSKU);
  337.     itempanel.add(labeldesc);
  338.         itempanel.add(buttonexit);
  339.         itempanel.add(buttonsave);
  340.         itempanel.setBackground(new java.awt.Color(238,105,100));
  341.  
  342.     if(edititem)
  343.     {
  344.       itempanel.add(buttondelete);
  345.     }
  346.         // add itempanel to itemframe
  347.         itemframe.add(itempanel);
  348.  
  349.         itemframe.setSize(300, 500);
  350.         itemframe.setBackground(new java.awt.Color(238,105,100));
  351.         itemframe.show();
  352.   }
  353.  
  354.   public static void createPurchaseGUI()
  355.     {
  356.     int total = 0;
  357.     Object[] object = new Object[4];
  358.  
  359.     purchaseframe = new JFrame("Purchase");
  360.     purchaseframe.setBackground(new java.awt.Color(238,105,100));
  361.     purchase = true;
  362.     currentsale = new JLabel("CURRENT SALE");
  363.     labelpurchasetotal = new JTextField(24);
  364.     labelpurchasetotal.setEditable(false);
  365.     labelpurchasetotal.setText("Harga Total Rp. " + st);
  366.     labelpurchasetotal.setBackground(Color.PINK);
  367.  
  368.     //Initializing the JTable
  369.     purchasemodel = new DefaultTableModel(purchasecolumnNames, 0);
  370.  
  371.     for(int i = 0; i < maintable.getRowCount(); i++)
  372.     {
  373.       if(Integer.parseInt(maintable.getValueAt(i, 5).toString()) > 0)
  374.       {
  375.         object[0] = maintable.getValueAt(i, 0).toString();
  376.         object[1] = ("x" + maintable.getValueAt(i, 5).toString());
  377.         object[2] = Integer.parseInt(maintable.getValueAt(i, 1).toString()) * Integer.parseInt(maintable.getValueAt(i, 5).toString());
  378.         object[3] = "X";
  379.         total = total + Integer.parseInt(maintable.getValueAt(i, 1).toString()) * Integer.parseInt(maintable.getValueAt(i, 5).toString());
  380.         purchasemodel.addRow(object);
  381.       }
  382.     }
  383.  
  384.     purchasetable = new JTable(purchasemodel);
  385.     purchasetable.getColumnModel().getColumn(3).setMinWidth(11);
  386.     purchasetable.getColumnModel().getColumn(3).setMaxWidth(11);
  387.     purchasetable.getColumnModel().getColumn(3).setWidth(11);
  388.     purchasetable.setTableHeader(null);
  389.     purchasetable.setShowGrid(false);
  390.     purchasetable.setDefaultEditor(Object.class, null);
  391.  
  392.     purchasetable.addMouseListener(new MouseAdapter()
  393.     {
  394.       public void mouseClicked(MouseEvent event)
  395.       {
  396.         int col = purchasetable.columnAtPoint(event.getPoint());
  397.         int row = purchasetable.rowAtPoint(event.getPoint());
  398.         if (col == 3)
  399.         {
  400.           int te = 0;
  401.           s0 = purchasetable.getValueAt(row, 2).toString();
  402.           te = (Integer.parseInt(st) - Integer.parseInt(s0));
  403.           st = Integer.toString(te);
  404.           labelpurchasetotal.setText("Harga Total Rp. " + st);
  405.           labeltotal.setText("Harga Total Rp. " + st);
  406.          
  407.           for (int i = 0; i < model.getRowCount(); i++)
  408.           {
  409.             if(model.getValueAt(i, 0) == purchasetable.getValueAt(row, 0))
  410.             {
  411.               model.setValueAt(0, i, 5);
  412.             }
  413.           }
  414.           int numRows = purchasetable.getSelectedRows().length;
  415.           for(int i = 0; i < numRows ; i++)
  416.           {
  417.             purchasemodel.removeRow(purchasetable.getSelectedRow());
  418.           }
  419.           purchasetable.setModel(purchasemodel);
  420.         }
  421.       }
  422.     }
  423.     );
  424.  
  425.     purchasesp = new JScrollPane(purchasetable);
  426.     purchasesp.setPreferredSize(new Dimension(240, 150));
  427.    
  428.     buttonexitpurchase = new JButton("X");
  429.     buttonexitpurchase.setPreferredSize(new Dimension(50, 50));
  430.     buttonexitpurchase.setBackground(Color.PINK);
  431.  
  432.         buttonclear = new JButton("Clear Sale");
  433.     buttonclear.setPreferredSize(new Dimension(190, 50));
  434.     buttonclear.setBackground(Color.PINK);
  435.  
  436.     // create a purchasepanel
  437.         JPanel purchasepanel = new JPanel();
  438.        
  439.     // add action listeners
  440.         buttonclear.addActionListener(maingui);
  441.     buttonexitpurchase.addActionListener(maingui);
  442.  
  443.  
  444.         // add elements to purchasepanel
  445.         purchasepanel.add(currentsale);
  446.         purchasepanel.add(purchasesp);
  447.         purchasepanel.add(labelpurchasetotal);
  448.         purchasepanel.add(buttonexitpurchase);
  449.         purchasepanel.add(buttonclear);
  450.         purchasepanel.setBackground(new java.awt.Color(238,105,100));
  451.         // add purchasepanel to purchaseframe
  452.         purchaseframe.add(purchasepanel);
  453.         purchaseframe.setSize(300, 500);
  454.         purchaseframe.setBackground(new java.awt.Color(238,105,100));
  455.         purchaseframe.show();
  456.     }
  457.  
  458.   public static void startLibrary()
  459.   {
  460.     butttonlib.setEnabled(false);
  461.     labelcustom.setVisible(false);
  462.     iconedit.setVisible(true);
  463.  
  464.     buttoncreate.setVisible(false);
  465.  
  466.     sp.setVisible(true);
  467.  
  468.     buttondone.setVisible(false);
  469.     iconpurchase.setVisible(true);
  470.  
  471.   }
  472.  
  473.   public static void starteditLibrary()
  474.   {
  475.     butttonlib.setEnabled(false);
  476.     labelcustom.setVisible(false);
  477.     iconedit.setVisible(false);
  478.  
  479.     buttoncreate.setVisible(true);
  480.     iconpurchase.setVisible(false);
  481.  
  482.     buttondone.setVisible(true);
  483.   }
  484.  
  485.   public static void startCustom()
  486.   {
  487.     s0 = "";
  488.     labelcustom.setText("Rp. 0");
  489.     butttonlib.setEnabled(true);
  490.     labelcustom.setVisible(true);
  491.     iconedit.setVisible(false);
  492.  
  493.     buttoncreate.setVisible(false);
  494.    
  495.     sp.setVisible(false);
  496.  
  497.     iconpurchase.setVisible(false);
  498.      
  499.   }
  500.  
  501.     public void actionPerformed(ActionEvent event)
  502.     {
  503.         String s = event.getActionCommand();
  504.  
  505.         // if the value is a number
  506.         if ((s.charAt(0) >= '0' && s.charAt(0) <= '9')) {
  507.             // if operand is present then add to second no
  508.             s0 = s0 + s;
  509.  
  510.             // set the value of text
  511.             labelcustom.setText("Rp. " + s0);
  512.         }
  513.         else if (s.equals("C")) {
  514.       s0 = "";
  515.             // set the value of text
  516.             labelcustom.setText("Rp. 0");
  517.         }
  518.         else if (s.charAt(0) == '+') {
  519.             // if there was no operand
  520.             int te = 0;
  521.       if(s0 == "")
  522.       {
  523.         s0 = "0";
  524.       }
  525.       te = (Integer.parseInt(s0) + Integer.parseInt(st));
  526.  
  527.       // convert it to string
  528.       st = Integer.toString(te);
  529.       s0 = "";  
  530.  
  531.         // set the value of text
  532.             labelcustom.setText("Rp. 0");
  533.             labelcustom.setBackground(Color.PINK);
  534.             labeltotal.setText("Charge Rp. " + st);
  535.             labeltotal.setBackground(Color.PINK);
  536.         }
  537.     else if (s.equals("Library"))
  538.     {
  539.       startLibrary();
  540.     }
  541.     else if (s.equals("Custom"))
  542.     {
  543.       startCustom();
  544.     }
  545.     else if (s.equals("edit"))
  546.     {
  547.       starteditLibrary();
  548.       edit = true;
  549.     }
  550.     else if (s.equals("Purchase"))
  551.     {
  552.       createPurchaseGUI();
  553.       frame.dispose();
  554.     }
  555.     else if (s.equals("DONE"))
  556.     {
  557.       startLibrary();
  558.       edit = false;
  559.     }
  560.     else if (s.equals("CREATE NEW ITEM"))
  561.     {
  562.       // frame.dispose();
  563.       createItemGUI("new", 0);
  564.     }
  565.     else if (s.equals("SAVE"))
  566.     {
  567.       Object[] row = new Object[6];
  568.       row[0] = (String)labelname.getText();
  569.       row[1] = labelprice.getText();
  570.       row[2] = (String)labelcategory.getText();
  571.       row[3] = (String)labelSKU.getText();
  572.       row[4] = (String)labeldesc.getText();
  573.       row[5] = 0;
  574.       model.addRow(row);
  575.       maintable.setModel(model);
  576.       if(edititem)
  577.       {
  578.         int numRows = maintable.getSelectedRows().length;
  579.         for(int i = 0; i < numRows ; i++)
  580.         {
  581.           model.removeRow(maintable.getSelectedRow());
  582.         }
  583.       }
  584.       itemframe.dispose();
  585.  
  586.       // frame.show();
  587.     }
  588.     else if (s.equals("X"))
  589.     {
  590.       if(purchase == true)
  591.       {
  592.         purchaseframe.dispose();
  593.         frame.show();
  594.       }
  595.       else
  596.       {
  597.         itemframe.dispose();
  598.       }
  599.     }
  600.     else if (s.equals("DELETE"))
  601.     {
  602.       int numRows = maintable.getSelectedRows().length;
  603.       for(int i = 0; i < numRows ; i++)
  604.       {
  605.         model.removeRow(maintable.getSelectedRow());
  606.       }
  607.       itemframe.dispose();
  608.  
  609.     }
  610.     else if (s.equals("Clear Sale"))
  611.     {
  612.       labelcustom.setText("Rp. 0");
  613.       labeltotal.setText("Charge Rp. 0");
  614.       labelpurchasetotal.setText("Charge Rp. 0");
  615.       s0 = "";
  616.       st = "0";
  617.      
  618.       for (int i = 0; i < purchasemodel.getRowCount(); i++)
  619.       {
  620.         purchasemodel.removeRow(i);
  621.       }
  622.       purchasetable.setModel(purchasemodel);
  623.      
  624.       for (int i = 0; i < model.getRowCount(); i++)
  625.       {
  626.         model.setValueAt(0, i, 5);
  627.       }
  628.     }
  629.   }
  630. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement