package tampilan; import javax.swing.*; import javax.swing.event.AncestorListener; import javax.swing.table.DefaultTableModel; import javax.swing.text.DefaultFormatterFactory; import javax.swing.text.NumberFormatter; import tampilan.Manage_supp.ButtonEditor; import database.Config; import database.dbProducts; import database.dbSupplier; import fungsi.Supplier; import database.dbSupplier; import java.awt.*; import java.awt.Dialog.ModalityType; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.text.NumberFormat; import java.util.Vector; public class Tambah_prod extends JFrame { public boolean cek = false; private Connection koneksi; private JPanel panelTambah = new JPanel(); private Container kontainer = new Container(); private dbSupplier sp = new dbSupplier(); private dbProducts pd = new dbProducts(); private JLabel lblSupp = new JLabel("Nama Supplier"); public JTextField txtSupp = new JTextField(15); // inser combo box // String[] supp = { "CV. Maju Jaya", "PT. Kimia Farma" }; // private JComboBox cboSupp = new JComboBox(supp); private JLabel lblIdSupp = new JLabel("ID Supplier"); public JLabel lblNoId = new JLabel("-"); private JLabel lblIDp = new JLabel("ID Produk"); private JLabel lblNoIdp = new JLabel("-"); private JLabel lblNama = new JLabel("Nama Produk"); public JTextField txtNama = new JTextField(10); private JLabel lblHarga = new JLabel("Harga"); //Set Curency //NumberFormat format = NumberFormat.getCurrencyInstance(); //NumberFormatter formatter = new NumberFormatter(format); //NumberFormat format = NumberFormat.getInstance(); //NumberFormatter formatter = new NumberFormatter(format); private JTextField txtHarga = new JTextField(15); private JLabel lblStock = new JLabel("Stock"); private JTextField txtStock = new JTextField(); private JLabel lblNotif = new JLabel( "Tekan Enter pada Field Supplier untuk mencari data supplier"); private JButton btnSimpan = new JButton("Simpan"); private JButton btnBatal = new JButton("Batal"); public Tambah_prod(String title) { super(title); super.setResizable(false); super.setLocationRelativeTo(null); super.setSize(500, 250); super.setDefaultCloseOperation(DISPOSE_ON_CLOSE); kontainer = getContentPane(); panelTambah.setLayout(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints(); kontainer.setLayout(new FlowLayout()); panelTambah .setBorder(BorderFactory.createTitledBorder("Data Supplier")); panelTambah.setMaximumSize(new Dimension(480, 220)); /* formatter.setValueClass(Integer.class); formatter.setMinimum(0); formatter.setMaximum(Integer.MAX_VALUE); // If you want the value to be committed on each keystroke instead of focus lost formatter.setCommitsOnValidEdit(true); */ c.fill = GridBagConstraints.HORIZONTAL; c.insets = new Insets(10, 10, 10, 10); c.gridx = 0; c.gridy = 0; panelTambah.add(lblSupp, c); c.gridx = 1; c.gridy = 0; panelTambah.add(txtSupp, c); c.gridx = 2; c.gridy = 0; panelTambah.add(lblIdSupp, c); c.gridx = 3; c.gridy = 0; panelTambah.add(lblNoId, c); c.gridx = 0; c.gridy = 1; panelTambah.add(lblNama, c); c.gridx = 1; c.gridy = 1; panelTambah.add(txtNama, c); c.gridx = 2; c.gridy = 1; panelTambah.add(lblIDp, c); c.gridx = 3; c.gridy = 1; panelTambah.add(lblNoIdp, c); c.gridx = 0; c.gridy = 2; panelTambah.add(lblHarga, c); /* format.setMaximumFractionDigits(0); formatter.setMinimum(0.0); formatter.setMaximum(1000000000.0); formatter.setAllowsInvalid(false); formatter.setOverwriteMode(false); formatter.setCommitsOnValidEdit(true); txtHarga.setValue( 0); */ c.gridx = 1; c.gridy = 2; panelTambah.add(txtHarga, c); c.gridx = 2; c.gridy = 2; c.ipadx = 40; panelTambah.add(lblStock, c); c.gridx = 3; c.gridy = 2; panelTambah.add(txtStock, c); c.gridx = 0; c.gridy = 3; panelTambah.add(btnBatal, c); c.gridx = 1; c.gridy = 3; btnSimpan.setPreferredSize(new Dimension(100, 25)); panelTambah.add(btnSimpan, c); JPanel panelNotif = new JPanel(); panelNotif.setLayout(new BorderLayout()); panelNotif.add(lblNotif, BorderLayout.CENTER); kontainer.add(panelTambah); kontainer.add(panelNotif); cariSupp(); btnBatal(); btnSimpan(); } public static void main(String[] args) { // TODO Auto-generated method stub Tambah_prod tmb = new Tambah_prod("Tambah Produk"); tmb.setVisible(true); tmb.setLocationRelativeTo(null); } public void btnSimpan() { btnSimpan.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub pd.addProduk(txtSupp, lblNoId, lblNoIdp, txtNama, txtHarga, txtStock); } }); } public void btnBatal() { btnBatal.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { // TODO Auto-generated method stub dispose(); } }); } public void cariSupp() { txtSupp.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { // TODO Auto-generated method stub if ((txtSupp.getText().equals(null)) || (txtSupp.getText().equals(""))) { JOptionPane.showMessageDialog(null, "Nama Supplier Belum dimasukkan!", "Error!", JOptionPane.ERROR_MESSAGE); } else { cekData(); // pc.setLocationRelativeTo(null); } } }); } public void cekData() { String cek = ""; try { Class.forName(Config.DATABASE_DRIVER).newInstance(); koneksi = DriverManager.getConnection(Config.URL, Config.username, Config.password); } catch (InstantiationException | IllegalAccessException | ClassNotFoundException | SQLException e) { e.printStackTrace(); } try { Statement stmt = koneksi.createStatement(); ResultSet rs = stmt .executeQuery("select idSupp from Supplier where namaSupp like '%" + txtSupp.getText() + "%'"); while (rs.next()) { cek = rs.getString(1); } if (cek.equals("")) { JOptionPane.showMessageDialog(null, "Data Tidak Ditemukan!", "Data Not Found!", JOptionPane.ERROR_MESSAGE); } else { Tambah_prod tmb = new Tambah_prod("Tambah Supplier"); Pencarian pc = new Pencarian(tmb, "Data Supplier", ModalityType.MODELESS); pc.setVisible(true); } /* * if (!cek.equalsIgnoreCase("")){ * JOptionPane.showMessageDialog(null, "Data Tidak Ditemukan!", * "Data Not Found!", JOptionPane.ERROR_MESSAGE); * System.out.println(txtSupp.getText()); } else { * * * } */ } catch (SQLException e) { e.printStackTrace(); } } public class Pencarian extends JDialog { private JPanel panelDialog = new JPanel(); private Container kontainer = new Container(); private DefaultTableModel dataModel = new DefaultTableModel() { @Override public boolean isCellEditable(int row, int column) { return false; } }; private JTable table = new JTable(dataModel); private JScrollPane scroll = new JScrollPane(table); public Pencarian(Tambah_prod owner, String title, ModalityType model) { super(owner, title, model); super.setSize(500, 470); // super.setVisible(true); super.setLocationRelativeTo(null); super.setDefaultCloseOperation(DISPOSE_ON_CLOSE); dataModel.addColumn("ID"); dataModel.addColumn("Nama"); dataModel.addColumn("Alamat"); dataModel.addColumn("Telp"); table.setModel(dataModel); kontainer = getContentPane(); kontainer.setLayout(new FlowLayout()); kontainer.add(scroll); // createTable(); sp.viewAllByAdd(txtSupp.getText(), table, dataModel); if (table.getRowCount() == 0) { JOptionPane.showMessageDialog(null, "Data Tidak Ditemukan!", "Data Not Found!", JOptionPane.ERROR_MESSAGE); setVisible(false); dispose(); setVisible(false); dispose(); } String solve = "Solve"; KeyStroke enter = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0); table.getInputMap(JTable.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(enter, solve); table.getActionMap().put(solve, new EnterAction()); clickData(); // createTable(); } public void createTable() { Vector<Supplier> vSupplier = sp.viewAll(); for (int i = 0; i < vSupplier.size(); i++) { dataModel.addRow(new Object[] { vSupplier.elementAt(i).getIdsupp(), vSupplier.elementAt(i).getNama(), vSupplier.elementAt(i).getAlamat(), vSupplier.elementAt(i).getTelp(), "Edit", "Hapus" }); } table.setModel(dataModel); } public void clickData() { table.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 2) { // JTable target = (JTable)e.getSource(); table = (JTable) e.getSource(); int row = table.getSelectedRow(); String nama = table.getValueAt(row, 1).toString(); String id = table.getValueAt(row, 0).toString(); txtSupp.setText(nama); lblNoId.setText(id); isiIdProd(lblNoId); txtNama.grabFocus(); dispose(); } } }); } public void isiIdProd(JLabel idSupp){ try{ String nol; int urutan=0; int panjang=0; Statement stmt = koneksi.createStatement(); ResultSet rs = stmt.executeQuery("select count(*), length(count(*)) from Products where idSupp = '" + idSupp.getText() + "' "); while (rs.next()){ urutan = rs.getInt(1); panjang = rs.getInt(2); } if(panjang==1){ nol = "00"; } else if(panjang==2){ nol = "0"; } else{ nol=""; } if(urutan==0){ urutan+=1; } stmt.close(); rs.close(); String idProd= idSupp.getText()+nol+urutan; try{ String cek=""; rs = stmt.executeQuery("select idProd from Products where idProd = '"+idProd+"'"); while(rs.next()){ cek = rs.getString(1); } if (cek.equals("")){ lblNoIdp.setText(idProd); } else{ stmt.close(); rs.close(); cek=""; boolean valid = false; do{ urutan++; int length = (int) Math.log10(urutan) + 1; if(length==1){ nol = "00"; } else if(length==2){ nol = "0"; } else{ nol=""; } String idProd2= idSupp.getText()+nol+urutan; ResultSet rz = stmt.executeQuery("select idProd from Products where idProd = '"+idProd2+"'"); while(rz.next()){ cek = rz.getString(1); } if (cek.equals(idProd2)){ valid = true; } else{ valid = false; lblNoIdp.setText(idProd2); } }while(valid!=false); } } catch(SQLException x){ x.printStackTrace(); } } catch(SQLException e){ e.printStackTrace(); } } private class EnterAction extends AbstractAction { @Override public void actionPerformed(ActionEvent e) { table = (JTable) e.getSource(); int row = table.getSelectedRow(); String nama = table.getValueAt(row, 1).toString(); String id = table.getValueAt(row, 0).toString(); txtSupp.setText(nama); lblNoId.setText(id); isiIdProd(lblNoId); txtNama.grabFocus(); dispose(); } } } }