JAVA - membuat tombol next dan previous pada jTable

JAVA - membuat tombol next dan previous pada jTable. Mungkin teman-teman pernah melihat aplikasi yang berbasis database. biasanya aplikasi tersebut menyediakan tampilan berupa tabel untuk melihat data yang tersimpan. dan biasanya juga dilengkapi dengan fungsi next dan previous. fungsi next dan previous biasanya digunakan untuk memudahkan pengguna dalam memilih data yang terdapat dalam tabel yang di sediakan.
Membuat tombol next dan previous tidaklah sulit malah boleh dibilang sangat sederhana. Berikut merupakan script untuk membuat tombol next dan Previous :

public void TampilNext(){
row = Tabel.getSelectedRow();
int b= tblModel.getRowCount();
b-=1;
if(row==b){
row=b;
}
else
{
row+=1;
}

Tabel.changeSelection(row, WIDTH, false, false);
}
public void TampilPrev(){
row = Tabel.getSelectedRow();
int b= tblModel.getRowCount();
if(row==0){
row=0;
}
else
{
row-=1;
}

Tabel.changeSelection(row, WIDTH, false, false);
}

Dengan ketentuan dan penjelasan sebagai berikut :

  1. Baris  row = Tabel.getSelectedRow(); = digunakan untuk mengidentifikasi nomor baris yang sedang di sorot.
  2. Baris  int b= tblModel.getRowCount(); = untuk menghitung jumlah data yang ada.
  3. Baris  Tabel.changeSelection(row, WIDTH, false, false);  = Untuk mensorot baris selanjutnya ataupun sebelumnya ergantung oleh tombol yang di klik.

Jika, masih bingung bagaimana penempatan script tersebut berikut merupakan implementasinya :

package RAPORT;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableRowSorter;

public class jtable extends javax.swing.JFrame {
String data[]=new String[12];
int row;
String stat="";
String[] kolom=new String[12];
String driver,database,user,pass,userLogin;

public String[] Kolom(){
kolom[0]="ID";
kolom[1]="NAMA";
kolom[2]="JENISKELAMIN";
kolom[3]="TTL";
kolom[4]="ALAMAT";
kolom[5]="NOTELP";
kolom[6]="ASALSEKOLAH";
kolom[7]="SEM1";
kolom[8]="SEM2";
kolom[9]="SEM3";
kolom[10]="SEM4";
kolom[11]="SEM5";
return kolom;
}

/** Creates new form jtable */
public jtable() {
initComponents();
driver="com.mysql.jdbc.Driver";
database="jdbc:mysql://localhost/aplikasi_raport";
user="root";
pass = "";

Tabel.setModel(tblModel);

setDefaultTable();
}
public void setDefaultTable(){
String stat="";
try{
Class.forName(driver);
Connection kon=(Connection) DriverManager.getConnection(database,user,pass);
Statement stt=(Statement) kon.createStatement();
String SQL = "SELECT * FROM raport";
ResultSet res=stt.executeQuery(SQL);

while(res.next()){
data[0]=res.getString(1);
data[1]=res.getString(2);
data[2]=res.getString(3);
data[3]=res.getString(4);
data[4]=res.getString(5);
data[5]=res.getString(6);
data[6]=res.getString(7);
data[7]=res.getString(8);
data[8]=res.getString(9);
data[9]=res.getString(10);
data[10]=res.getString(11);
data[11]=res.getString(12);
tblModel.addRow(data);
}
res.close();
stt.close();
kon.close();
}
catch(Exception exc){
System.err.println(exc.getMessage());
}
}

private DefaultTableModel getDefaultTabelModel(){
return new DefaultTableModel(
new Object [][] {},
new String [] {"ID","NAMA","JENIS KELAMIN","TEMPAT TANGGAL LAHIR","ALAMAT","NO TELPON","ASAL SEKOLAH","SEMESTER 1", "SEMESTER 2","SEMESTER 3","SEMESTER 4","SEMESTER 5"})
{
boolean[] canEdit = new boolean[]{
false,false,false,false,false,false,false,false,false,false,false,false
};
@Override
public boolean isCellEditable(int rowIndex, int columnIndex){
return canEdit[columnIndex];
}
};
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

jScrollPane1 = new javax.swing.JScrollPane();
Tabel = new javax.swing.JTable();
prevbutton = new javax.swing.JButton();
nextbutton = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

Tabel.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{"Rendi", "Eka"},
{"eka ", "aa"},
{"aa", "ss"},
{"sdd", null}
},
new String [] {
"Nama", "Kelas"
}
));
jScrollPane1.setViewportView(Tabel);

prevbutton.setText("Prev");
prevbutton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
prevbuttonActionPerformed(evt);
}
});

nextbutton.setText("next");
nextbutton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
nextbuttonActionPerformed(evt);
}
});

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 375, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createSequentialGroup()
.addComponent(prevbutton)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(nextbutton)))
.addContainerGap(15, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(30, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(prevbutton)
.addComponent(nextbutton))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 275, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);

pack();
}// </editor-fold>

private void prevbuttonActionPerformed(java.awt.event.ActionEvent evt) {
TampilPrev();
}

private void nextbuttonActionPerformed(java.awt.event.ActionEvent evt) {
TampilNext();
}

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new jtable().setVisible(true);
}
});
}

public void TampilNext(){
row = Tabel.getSelectedRow();
int b= tblModel.getRowCount();
b-=1;
if(row==b){
row=b;
}
else
{
row+=1;
}

Tabel.changeSelection(row, WIDTH, false, false);
}
public void TampilPrev(){
row = Tabel.getSelectedRow();
int b= tblModel.getRowCount();
if(row==0){
row=0;
}
else
{
row-=1;
}

Tabel.changeSelection(row, WIDTH, false, false);
}

// Variables declaration - do not modify
private javax.swing.JTable Tabel;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JButton nextbutton;
private javax.swing.JButton prevbutton;
// End of variables declaration
private javax.swing.table.DefaultTableModel tblModel = getDefaultTabelModel();
}

- Selamat Mencoba -


1 komentar to "JAVA - membuat tombol next dan previous pada jTable"

Posting Komentar

Komentar Dynamic Touch -

Translate This Blog


URL renamer

Inspirational quote

Pengikut