Total Tayangan Halaman

Senin, 07 Juli 2014

JPA; Membuat Class TableModel dari Entity Class

 
 
 
 
 
 
2 Votes

Misalkan entity class nya (Anggota.java) seperti di bawah ini
package com.andik.tutorial.entity;
 
import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlRootElement;
 
/**
 *
 * @author Andik Hermawan
 */
@Entity
@Table(name = "anggota")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Anggota.findAll", query = "SELECT a FROM Anggota a"),
    @NamedQuery(name = "Anggota.findById", query = "SELECT a FROM Anggota a WHERE a.id = :id"),
    @NamedQuery(name = "Anggota.findByNama", query = "SELECT a FROM Anggota a WHERE a.nama = :nama"),
    @NamedQuery(name = "Anggota.findByAlamat", query = "SELECT a FROM Anggota a WHERE a.alamat = :alamat"),
    @NamedQuery(name = "Anggota.findByKota", query = "SELECT a FROM Anggota a WHERE a.kota = :kota"),
    @NamedQuery(name = "Anggota.findByEmail", query = "SELECT a FROM Anggota a WHERE a.email = :email"),
    @NamedQuery(name = "Anggota.findByTelepon", query = "SELECT a FROM Anggota a WHERE a.telepon = :telepon")})
public class Anggota implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "id")
    private String id;
    @Column(name = "nama")
    private String nama;
    @Column(name = "alamat")
    private String alamat;
    @Column(name = "kota")
    private String kota;
    @Column(name = "email")
    private String email;
    @Column(name = "telepon")
    private String telepon;
 
    public Anggota() {
    }
 
    public Anggota(String id) {
        this.id = id;
    }
 
    public String getId() {
        return id;
    }
 
    public void setId(String id) {
        this.id = id;
    }
 
    public String getNama() {
        return nama;
    }
 
    public void setNama(String nama) {
        this.nama = nama;
    }
 
    public String getAlamat() {
        return alamat;
    }
 
    public void setAlamat(String alamat) {
        this.alamat = alamat;
    }
 
    public String getKota() {
        return kota;
    }
 
    public void setKota(String kota) {
        this.kota = kota;
    }
 
    public String getEmail() {
        return email;
    }
 
    public void setEmail(String email) {
        this.email = email;
    }
 
    public String getTelepon() {
        return telepon;
    }
 
    public void setTelepon(String telepon) {
        this.telepon = telepon;
    }
 
    @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }
 
    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Anggota)) {
            return false;
        }
        Anggota other = (Anggota) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }
 
    @Override
    public String toString() {
        return "com.andik.tutorial.entity.Anggota[ id=" + id + " ]";
    }
 
}
dari entity class (Anggota.java) di atas dapat kita tampilkan pada JTable menggunakan TableModel. TableModel ini memuat data dari class java.util.List. Sebagai contoh dalam tulisan ini Class TableModel nya kita kasih nama AnggotaTableMode.java.

package com.andik.tutorial.model;
 
import com.andik.tutorial.entity.Anggota;
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;
 
/**
 *
 * @author Andik Hermawan
 */
public class AnggotaTableModel extends AbstractTableModel {
 
    private List<Anggota> list;
 
    public AnggotaTableModel() {
        list = new ArrayList<Anggota>();
    }
 
    public void setData(List list) {
        this.list = list;
        fireTableDataChanged();
    }
 
    public void add(Anggota anggota) {
        list.add(anggota);
        fireTableRowsInserted(getRowCount() - 1, getRowCount() - 1);
    }
 
    public void edit(int index, Anggota anggota) {
        list.set(index, anggota);
        fireTableRowsUpdated(index, index);
    }
 
    public void delete(int index) {
        list.remove(index);
        fireTableRowsDeleted(index, index);
    }
 
    public void deleteAll() {
        list.clear();
        fireTableDataChanged();
    }
 
    public Anggota get(int row) {
        return list.get(row);
    }
 
    @Override
    public int getRowCount() {
        return list.size();
    }
 
    @Override
    public int getColumnCount() {
        return 6;
    }
 
    public List<Anggota> getList() {
        return list;
    }
 
    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        switch (columnIndex) {
            case 0:
                return list.get(rowIndex).getId();
            case 1:
                return list.get(rowIndex).getNama();
            case 2:
                return list.get(rowIndex).getAlamat();
            case 3:
                return list.get(rowIndex).getKota();
            case 4:
                return list.get(rowIndex).getEmail();
            case 5:
                return list.get(rowIndex).getTelepon();
            default:
                return null;
        }
    }
 
    @Override
    public String getColumnName(int column) {
        switch (column) {
            case 0:
                return "ID";
            case 1:
                return "Nama";
            case 2:
                return "Alamat";
            case 3:
                return "Kota";
            case 4:
                return "Email";
            case 5:
                return "Telepon";
            default:
                return null;
        }
    }
 
    @Override
    public Class getColumnClass(int column) {
        switch (column) {
            case 0:
                return String.class;
            case 1:
                return String.class;
            case 2:
                return String.class;
            case 3:
                return String.class;
            case 4:
                return String.class;
            case 5:
                return String.class;
            default:
                return Object.class;
        }
    }
}
Untuk memanggilnya dengan code di bawah ini
..
        AnggotaTableModel model = new AnggotaTableModel();
        anggotaTableView.setModel(model);
...
Untuk lebih jelasnya disambung di artikel selanjutnya, selamat mencoba dan semoga bermanfaat…

Tidak ada komentar:

Posting Komentar