Senin, 18 April 2016

Cara membuat JLabel java memakai Penyimpanan .TXT

Pertama Buka Aplikasi Netbeans.



Setelah itu, buat projectnya 'file - new project {ctrl+shift+n} - java - Java Application [next - Finish]
Membuat projectnya selesai, Terus kita buat framenya.


Setelah selesai, kita buat Desain GUI nya Contohnya Seperti ini :


Setelah Selesai Kita masuk ke Kodingnya.

JTextField jTkodeb
JTextField jTnamab
JTextField jTunitdpsn
JTextField jThargab
JTextField jTtotal
JButton jbtotal
JButton jbbaru
JButton jbsimpan
JButton jbhapus
JCheckBox CBtotal

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.StringTokenizer;
import java.util.Vector;
import javax.swing.JOptionPane;
import javax.swing.SwingConstants;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;

private Vector<Vector<String>> DB = new Vector(), data = new Vector();
    private Vector head = new Vector();
    private int max = 0; //untuk no urut
    private String fileName = "H:/dataKomputer.txt"; //file save
    private DefaultTableCellRenderer rightRenderer = new DefaultTableCellRenderer();
    
    public Komputer() {
        initComponents();
        rightRenderer.setHorizontalAlignment(SwingConstants.RIGHT);
        bacaData();
        updateTabel();
    }

private void bacaData(){    // untuk membaca data yang di save pakai ekstensi txt
        try {
            BufferedReader br = new BufferedReader(new FileReader(fileName));
            String tmp;
            while((tmp=br.readLine())!=null){
                StringTokenizer st = new StringTokenizer(tmp, "#");
                Vector<String> tmp2 = new Vector();
                String Kode = st.nextToken();
                String Nama = st.nextToken();
                String Unit = st.nextToken();
                String Harga = st.nextToken();
                String Total = st.nextToken();
                tmp2.add(Kode); tmp2.add(Nama); tmp2.add(Unit); tmp2.add(Harga); tmp2.add(Total);
                DB.add(tmp2);
                if(Integer.parseInt(Kode) > max) max = Integer.parseInt(Kode);
            }
            br.close();
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }

private void updateTabel(){   // untuk mengupdate tabel
        data = new Vector();
        head = new Vector();
        head.add("Kode"); head.add("Nama"); head.add("Unit"); head.add("Harga");
        if(CBtotal.isSelected()) head.add("Total"); 
        
        for (Vector<String> v1 : DB) {
            Vector<String> v2 = new Vector<>();
            v2.add(v1.get(0));
            v2.add(v1.get(1));
            v2.add(v1.get(2));
            v2.add(v1.get(3));
            if(CBtotal.isSelected()) v2.add(v1.get(4));
            data.add(v2);
        }
        
        Tabel.setModel(new DefaultTableModel(data, head));
        Tabel.getColumnModel().getColumn(0).setPreferredWidth(50);
        Tabel.getColumnModel().getColumn(1).setPreferredWidth(100);
        Tabel.getColumnModel().getColumn(2).setPreferredWidth(100);
        Tabel.getColumnModel().getColumn(3).setPreferredWidth(100);
        if(CBtotal.isSelected()) Tabel.getColumnModel().getColumn(4).setPreferredWidth(300);
        Tabel.getColumnModel().getColumn(0).setCellRenderer(rightRenderer);
        Tabel.getColumnModel().getColumn(1).setCellRenderer(rightRenderer);
    }

private void simpanData(){  // untuk menyimpan data ke file txt
        try {
            BufferedWriter bw = new BufferedWriter(new FileWriter(fileName));
            for (Vector<String> v : DB) {
                bw.write(v.get(0)+"#"+v.get(1)+"#"+v.get(2)+"#"+v.get(3)+"#"+v.get(4));
                bw.newLine();
            }
            bw.close();
        } catch (Exception e) {
        }
    }
    
    private void hapusData() {     // untuk menghapus data
        String kode = jTkodeb.getText().trim();
        if(kode.equals("")) {
            JOptionPane.showMessageDialog(this, "Tentukan nama barang yang ingin dihapus.");
        } else {
            if(JOptionPane.showConfirmDialog(this, "Data "+kode+" dihapus?", "Konfirmasi", JOptionPane.YES_NO_OPTION) == JOptionPane.NO_OPTION) return;
            boolean b = false;
            int i;
            for (i = 0; i < DB.size(); i++) {
                if(DB.get(i).get(1).equals(kode)) { b = true; break; }
            }
            if(b){
                DB.remove(i);
                JOptionPane.showMessageDialog(this, "Proses Hapus sukses.");
                max = 0;
                for (Vector<String> v : DB) {
                    if(Integer.parseInt(v.get(0)) > max) max = Integer.parseInt(v.get(0));
                }
                updateTabel();
                jTkodeb.setText(""); jTnamab.setText(""); jTunitdpsn.setText(""); jThargab.setText(""); jTtotal.setText("");
            } else {
                JOptionPane.showMessageDialog(this, "Data tidak ditemukan.");
            }
        }
    }

private void jbtotalActionPerformed(java.awt.event.ActionEvent evt) {        // untuk tombol simpan        
        // TODO add your handling code here:
        int bil1=Integer.parseInt(jTunitdpsn.getText().toString());
        int bil2=Integer.parseInt(jThargab.getText().toString());
        int total = bil1*bil2;
        jTtotal.setText(""+total);

    }

private void TabelMouseClicked(java.awt.event.MouseEvent evt) {          // untuk mouse click di tabel
        // TODO add your handling code here:
        int row = Tabel.getSelectedRow();
        if(row < 0) {
            JOptionPane.showMessageDialog(this, "Pilih data (klik kiri) terlebih dahulu.");
            return;
        }
        jTkodeb.setText(DB.get(row).get(0));
        jTnamab.setText(DB.get(row).get(1));
        jTunitdpsn.setText(DB.get(row).get(2));
        jThargab.setText(DB.get(row).get(3));
        jTtotal.setText(DB.get(row).get(4));
        jTkodeb.setEditable(false);
        if(evt.getButton() == java.awt.event.MouseEvent.BUTTON3) {
            MenuHapus.setText("Hapus "+jTkodeb.getText()+", "+jTnamab.getText());
            PopupMenu.show(Tabel, evt.getX(), evt.getY());
        }
    }                                  

    private void jbsimpanActionPerformed(java.awt.event.ActionEvent evt) {       // untuk tombol simpan 
        // TODO add your handling code here:
        String no = String.valueOf(max+1);
        String Kode = jTkodeb.getText().trim();
        String Nama = jTnamab.getText().trim();
        String Unit = jTunitdpsn.getText().trim();
        String Harga = jTtotal.getText().trim();
        String Total = jTtotal.getText().trim();
        if(Kode.equals("") || Nama.equals("") || Unit.equals("") || Harga.equals("") || Total.equals(""))
            JOptionPane.showMessageDialog(this, "Semua isian harus diisi.");
        else {
            boolean b = false;
            int i;
            Vector<String> v = new Vector<>();
            
            for (i = 0; i < DB.size(); i++) {
                if(DB.get(i).get(1).equals(Kode)) { b = true; break; }
            }
            if(b){
                v.add(DB.get(i).get(0)); v.add(Kode); v.add(Nama); v.add(Unit); v.add(Harga); v.add(Total);
                DB.setElementAt(v, i);
                updateTabel();
                JOptionPane.showMessageDialog(this, "Proses update sukses.");
            } else {
                v.add(no); v.add(Kode); v.add(Nama); v.add(Unit); v.add(Harga); v.add(Total);
                DB.add(v);
                updateTabel(); max++;
                JOptionPane.showMessageDialog(this, "Proses simpan sukses.");
            }
            jTkodeb.setText(""); jTnamab.setText(""); jTunitdpsn.setText(""); jThargab.setText(""); jTtotal.setText(""); jTkodeb.setEditable(false);
        }
    }

private void CBtotalActionPerformed(java.awt.event.ActionEvent evt) {                                        
        // TODO add your handling code here:
        updateTabel();
    }                                       

    private void formWindowClosing(java.awt.event.WindowEvent evt) {                                   
        // TODO add your handling code here:
        simpanData();
        dispose();
    }                                  

    private void btnbaruActionPerformed(java.awt.event.ActionEvent evt) {                                        
        // TODO add your handling code here:
        jTkodeb.setEditable(true);
        jTkodeb.setText(""); jTnamab.setText(""); jTunitdpsn.setText(""); jThargab.setText(""); jTtotal.setText(""); jTkodeb.requestFocus();
    }


dan hasilnya seperti ini :




Sekina dari celotehan saya, disini saya juga masih belajar. Terimakasih

Tidak ada komentar:

Posting Komentar