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); ... |