Praktikum Java Semester 7: Part 1
Praktikum Java Semester 7: Part 2
Praktikum Java Semester 7: Part 3
Praktikum Java Semester 7: Part 4
Praktikum Java Semester 7: Part 5
Pembuatan Frame di NetBeans sangat dimudahkan oleh fitur visualnya, namun karena ada beberapa fitur yang akan memiliki method yang sama dan menghindari pengulangan coding maka terlebih dahulu dipersiapkan templatenya.
Pada pengelolaan data master akan dipersiapkan 2 (dua) frame untuk tiap table, yaitu View Frame yang fungsinya untuk menampilkan table, dan Add Frame yang fungsinya untuk tambah dan ubah data. Maka dibuat dulu Interface-nya
Buka package template
dan didalamnya buat interface ViewFrameInterface
, isikan dengan
public interface ViewFrameInterface {
abstract void refresh();
abstract void buildTable(ArrayList<Object> list);
}
berikutnya buat interface AddFrameInterface
, isikan dengan
public interface AddFrameInterface {
abstract boolean dataKosong();
abstract void simpanTambah();
abstract void simpanUbah();
}
Frame yang dibuat akan berupa custom yang tidak memiliki window sehingga supaya seragam kita buat dulu custom framenya, masih didalam package template
buat sebuah class CustomFrame
, dan isikan dengan
public class CustomFrame extends javax.swing.JFrame{
public void customShow() {
this.dispose();
this.setUndecorated(true);
this.setLocationRelativeTo(null);
this.setVisible(true);
}
}
Buat package view.admin.jenisbarang
dan didalamnya buat sebuah frame dengan nama JenisBarangViewFrame
dan atur sedemikian rupa sehingga tampil seperti gambar berikut
- JPanel: Properties->background: [102,16,242]
- JLabel
- JLabel
- JTextField: tfCari
- JButton: btCari
- JTable: tbJenisbarang
- JButton: btBatal
- JButton: btHapus
- JButton: btUbah
- JButton: btTambah
- JButton: btTutup
tbJenisbarang
bisa diatur dengan cara klik kanan -> TableContents
-> pilih tab Columns
-> isi title sesuai dengan kebutuhan -> pilih tab Rows
-> atur agar Count
bernilai 0
Pindah ke bagian Source
, ubah deklarasi class frame ini dari
public class JenisBarangViewFrame extends javax.swing.JFrame{
menjadi
public class JenisBarangViewFrame extends CustomFrame
implements ViewFrameInterface{
Implements abstract methodnya dan pada method buildTable
isikan dengan
@Override
public void buildTable(ArrayList<Object> list) {
DefaultTableModel model = (DefaultTableModel) tbJenisbarang.getModel();
Object[] row = new Object[2];
model.setRowCount(0);
if (list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
JenisBarang jenisBarang = (JenisBarang) list.get(i);
row[0] = jenisBarang.getId();
row[1] = jenisBarang.getNamaJenisBarang();
model.addRow(row);
}
}
}
Pada method refresh
isikan dengan
@Override
public void refresh() {
tfCari.setText("");
Database db = new Database();
JenisBarang jenisBarang = new JenisBarang(db.getConnection());
ArrayList<Object> list = jenisBarang.read();
if(!list.isEmpty()){
buildTable(list);
}
}
Pindah ke bagian Design
, klik pada frame dan cari pada window Properties
tab Events
, scroll kebawah pada posisi windowActivated
, pilih comboboxnya sehingga tercipta method formWindowActivated
, dan isikan dengan
private void formWindowActivated(java.awt.event.WindowEvent evt) {
refresh();
}
Kembali ke bagian Design
, klik dua kali pada btBatal
, dan isikan dengan
private void btBatalActionPerformed(java.awt.event.ActionEvent evt) {
refresh();
}
Kembali ke bagian Design
, klik dua kali pada btTutup
, dan isikan dengan
private void btTutupActionPerformed(java.awt.event.ActionEvent evt) {
dispose();
}
Kembali ke bagian Design
, klik dua kali pada btCari
, dan isikan dengan
private void btCariActionPerformed(java.awt.event.ActionEvent evt) {
String keyword = tfCari.getText();
if(!keyword.equals("")){
Database db = new Database();
Connection con = db.getConnection();
JenisBarang jenisBarang = new JenisBarang(con);
ArrayList<Object> list = jenisBarang.search(keyword);
if(!list.isEmpty()){
buildTable(list);
}else{
JOptionPane.showMessageDialog(null, "Data tidak ditemukan");
}
}else{
JOptionPane.showMessageDialog(null, "Isi kata kunci pencarian");
}
}
Kembali ke bagian Design
, klik dua kali pada btHapus
, dan isikan dengan
private void btHapusActionPerformed(java.awt.event.ActionEvent evt) {
int barisTerpilih = tbJenisBarang.getSelectedRow();
if(barisTerpilih >= 0){
int pilihan = JOptionPane.showConfirmDialog(null,
"Yakin hapus?",
"Konfirmasi",
JOptionPane.YES_NO_OPTION);
if(pilihan == 0){
TableModel model = tbJenisbarang.getModel();
int id = (int) model.getValueAt(barisTerpilih, 0);
Database db = new Database();
Connection con = db.getConnection();
JenisBarang jb = new JenisBarang(con);
jb.setId(id);
jb.delete();
}
}else{
JOptionPane.showMessageDialog(null, "Pilih dulu datanya");
}
}
Oke, sebagian fitur sudah diisi, untuk tombol tambah dan ubah diperlukan AddFrame yang akan dibahas pada part berikutnya.
Praktikum Java Semester 7: Part 1
Praktikum Java Semester 7: Part 2
Praktikum Java Semester 7: Part 3
Praktikum Java Semester 7: Part 4
Praktikum Java Semester 7: Part 5