Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main;
- import java.sql.Connection;
- import java.sql.SQLException;
- import java.util.ArrayList;
- import javax.swing.JOptionPane;
- import javax.swing.table.DefaultTableModel;
- public class MesinKasir extends javax.swing.JFrame {
- DefaultTableModel table = new DefaultTableModel();
- public MesinKasir() {
- initComponents();
- table.addColumn("ID");
- table.addColumn("Name");
- table.addColumn("Price");
- table.addColumn("Quantity");
- table.addColumn("Total");
- jTable1.setModel(table);
- }
- @SuppressWarnings("unchecked")
- // <editor-fold defaultstate="collapsed" desc="Generated Code">
- private void initComponents() {
- jLabel1 = new javax.swing.JLabel();
- jLabel2 = new javax.swing.JLabel();
- jLabel3 = new javax.swing.JLabel();
- txtId = new javax.swing.JTextField();
- txtPrice = new javax.swing.JTextField();
- txtName = new javax.swing.JTextField();
- btnSearch = new javax.swing.JButton();
- jScrollPane1 = new javax.swing.JScrollPane();
- jTable1 = new javax.swing.JTable();
- txtTotal = new javax.swing.JTextField();
- txtPayment = new javax.swing.JTextField();
- txtChange = new javax.swing.JTextField();
- jLabel4 = new javax.swing.JLabel();
- jLabel5 = new javax.swing.JLabel();
- jLabel6 = new javax.swing.JLabel();
- btnAdd = new javax.swing.JButton();
- jLabel7 = new javax.swing.JLabel();
- txtQuantity = new javax.swing.JTextField();
- btnConfirm = new javax.swing.JButton();
- btnCheckout = new javax.swing.JButton();
- setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
- jLabel1.setText("ID");
- jLabel2.setText("Name");
- jLabel3.setText("Price");
- btnSearch.setText("Search");
- btnSearch.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- btnSearchActionPerformed(evt);
- }
- });
- jTable1.setModel(new javax.swing.table.DefaultTableModel(
- new Object [][] {
- {null, null, null, null, null},
- {null, null, null, null, null},
- {null, null, null, null, null},
- {null, null, null, null, null}
- },
- new String [] {
- "ID", "Name", "Price", "Quantity", "Total"
- }
- ) {
- boolean[] canEdit = new boolean [] {
- false, false, false, false, true
- };
- public boolean isCellEditable(int rowIndex, int columnIndex) {
- return canEdit [columnIndex];
- }
- });
- jScrollPane1.setViewportView(jTable1);
- jLabel4.setText("Total");
- jLabel5.setText("Payment");
- jLabel6.setText("Change");
- btnAdd.setText("Add New Item");
- btnAdd.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- btnAddActionPerformed(evt);
- }
- });
- jLabel7.setText("Quantity");
- btnConfirm.setText("Confirm");
- btnConfirm.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- btnConfirmActionPerformed(evt);
- }
- });
- btnCheckout.setText("Checkout");
- btnCheckout.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- btnCheckoutActionPerformed(evt);
- }
- });
- javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
- getContentPane().setLayout(layout);
- layout.setHorizontalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addContainerGap()
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
- .addGap(0, 5, Short.MAX_VALUE)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(btnAdd, javax.swing.GroupLayout.Alignment.TRAILING)
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
- .addGroup(layout.createSequentialGroup()
- .addComponent(btnCheckout)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jLabel4)
- .addComponent(jLabel5)
- .addComponent(jLabel6))
- .addGap(18, 18, 18)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(txtPayment, javax.swing.GroupLayout.PREFERRED_SIZE, 88, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(txtTotal, javax.swing.GroupLayout.PREFERRED_SIZE, 88, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(txtChange, javax.swing.GroupLayout.PREFERRED_SIZE, 88, javax.swing.GroupLayout.PREFERRED_SIZE)))
- .addComponent(btnConfirm))
- .addGap(14, 14, 14))
- .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 375, javax.swing.GroupLayout.PREFERRED_SIZE))))
- .addGroup(layout.createSequentialGroup()
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jLabel7)
- .addComponent(jLabel3)
- .addComponent(jLabel2)
- .addComponent(jLabel1))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addComponent(txtId)
- .addGap(18, 18, 18)
- .addComponent(btnSearch))
- .addComponent(txtName)
- .addComponent(txtPrice)
- .addComponent(txtQuantity))))
- .addContainerGap())
- );
- layout.setVerticalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addContainerGap()
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(jLabel1)
- .addComponent(txtId, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(btnSearch))
- .addGap(18, 18, 18)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(jLabel2)
- .addComponent(txtName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addGap(18, 18, 18)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(jLabel3)
- .addComponent(txtPrice, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addGap(18, 18, 18)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(jLabel7)
- .addComponent(txtQuantity, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addGap(18, 18, 18)
- .addComponent(btnAdd)
- .addGap(18, 18, 18)
- .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addGap(18, 18, 18)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(txtTotal, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(jLabel4)
- .addComponent(btnCheckout))
- .addGap(18, 18, 18)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(txtPayment, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(jLabel5))
- .addGap(18, 18, 18)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(txtChange, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(jLabel6))
- .addGap(18, 18, 18)
- .addComponent(btnConfirm)
- .addContainerGap(12, Short.MAX_VALUE))
- );
- pack();
- }// </editor-fold>
- private void btnSearchActionPerformed(java.awt.event.ActionEvent evt) {
- search();
- }
- private void btnAddActionPerformed(java.awt.event.ActionEvent evt) {
- add();
- }
- private void btnCheckoutActionPerformed(java.awt.event.ActionEvent evt) {
- checkOut();
- }
- private void btnConfirmActionPerformed(java.awt.event.ActionEvent evt) {
- confirmPayment();
- }
- public static void main(String args[]) {
- /* Set the Nimbus look and feel */
- //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
- /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
- * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
- */
- 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(MesinKasir.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
- } catch (InstantiationException ex) {
- java.util.logging.Logger.getLogger(MesinKasir.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
- } catch (IllegalAccessException ex) {
- java.util.logging.Logger.getLogger(MesinKasir.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
- } catch (javax.swing.UnsupportedLookAndFeelException ex) {
- java.util.logging.Logger.getLogger(MesinKasir.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
- }
- //</editor-fold>
- /* Create and display the form */
- java.awt.EventQueue.invokeLater(new Runnable() {
- public void run() {
- new MesinKasir().setVisible(true);
- }
- });
- }
- private void add(){
- int totalHarga = Integer.parseInt(txtPrice.getText()) * Integer.parseInt(txtQuantity.getText());
- table.addRow(new Object[]{
- txtId.getText(),
- txtName.getText(),
- txtPrice.getText(),
- txtQuantity.getText(),
- totalHarga
- });
- jTable1.setModel(table);
- }
- private void checkOut(){
- int totalHarga = 0;
- int size = jTable1.getRowCount();
- for(int i = 0; i < size; i++){
- totalHarga = totalHarga + (int) jTable1.getValueAt(i, 4);
- }
- txtTotal.setText(""+totalHarga);
- }
- private void confirmPayment(){
- int total = Integer.parseInt(txtTotal.getText());
- int payment = Integer.parseInt(txtPayment.getText());
- int change = payment - total;
- txtChange.setText(""+change);
- insertDataTransaction();
- clearForm();
- }
- private void search(){
- String id = txtId.getText();
- try {
- String sql = "SELECT name, price FROM tb_barang WHERE id="+id;
- java.sql.Connection conn = (Connection) Config.configDB();
- java.sql.Statement stm = conn.createStatement();
- java.sql.ResultSet result = stm.executeQuery(sql);
- while(result.next()){
- txtName.setText(result.getString(1));
- txtPrice.setText(result.getString(2));
- }
- } catch(SQLException e){
- showMessage(e.getMessage());
- }
- }
- private void clearForm(){
- table.setRowCount(0);
- jTable1.setModel(table);
- txtId.setText(null);
- txtName.setText(null);
- txtPrice.setText(null);
- txtQuantity.setText(null);
- }
- private void insertDataTransaction(){
- try{
- ArrayList<String> list = new ArrayList();
- int row = jTable1.getRowCount();
- int col = jTable1.getColumnCount();
- for(int i = 0; i < row; i++ ){
- for(int j = 0; j < col; j++){
- list.add(String.valueOf(jTable1.getValueAt(i, j)));
- }
- String sql = "INSERT INTO `tb_transaksi` (`name`, `price`, `quantity`, `total`) VALUES ('"+list.get(1)+"' , '"+list.get(2)+"' , '"+list.get(3)+"' , '"+list.get(4)+"')";
- java.sql.Connection conn = (Connection) Config.configDB();
- java.sql.PreparedStatement pst = conn.prepareStatement(sql);
- pst.execute();
- list.clear();
- }
- } catch (SQLException e){
- showMessage(e.getMessage());
- }
- }
- private void showMessage(String text){
- JOptionPane.showMessageDialog(this, text);
- }
- // Variables declaration - do not modify
- private javax.swing.JButton btnAdd;
- private javax.swing.JButton btnCheckout;
- private javax.swing.JButton btnConfirm;
- private javax.swing.JButton btnSearch;
- private javax.swing.JLabel jLabel1;
- private javax.swing.JLabel jLabel2;
- private javax.swing.JLabel jLabel3;
- private javax.swing.JLabel jLabel4;
- private javax.swing.JLabel jLabel5;
- private javax.swing.JLabel jLabel6;
- private javax.swing.JLabel jLabel7;
- private javax.swing.JScrollPane jScrollPane1;
- private javax.swing.JTable jTable1;
- private javax.swing.JTextField txtChange;
- private javax.swing.JTextField txtId;
- private javax.swing.JTextField txtName;
- private javax.swing.JTextField txtPayment;
- private javax.swing.JTextField txtPrice;
- private javax.swing.JTextField txtQuantity;
- private javax.swing.JTextField txtTotal;
- // End of variables declaration
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement