JPA; Membuat Class TableModel dari Entity Class
2 Balasan
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 + " ]"; }} |
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; } }} |
.. AnggotaTableModel model = new AnggotaTableModel(); anggotaTableView.setModel(model);... |