Download BAB V JTable

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
BAB V
JTable
Ketika merancang aplikasi yang menggunakan JTable yang perlu cermat struktur
data yang akan diasjikan di tabel. Untuk DefaultTableModel adalah implementasi model
yang menggunakan vektor Vektor Object untuk menyimpan nilai-nilai sel. Selain
menyalin data dari aplikasi ke dalam DefaultTableModel, juga memungkinkan untuk
menyajikan data dalam metode TableModel Interface sehingga data dapat dikirimkan
ke JTable langsung.. Ini mebuat aplikasi yang lebih efisien karena model bebas memilih
dan direpresentasi secara internal sesuai dengan data. Aturan praktis yang baik untuk
memutuskan apakah akan menggunakan AbstractTableModel atau DefaultTableModel
adalah dengan menggunakan AbstractTableModel sebagai kelas dasar untuk
menciptakan subclass dan DefaultTableModel ketika subclass tidak diperlukan.
Kontruktor
JTable ()
Default menciptakan JTable yang diawali dengan model default data, model kolom
default, dan model pilihan default.
JTable (numRows int, int numColumns)
Meciptakan sebuah JTable dengan numRows dan numColumns sel kosong
menggunakan DefaultTableModel.
JTable (Object [] [] rowData, Object [] columnNames)
Menciptakn sebuah JTable untuk menampilkan nilai-nilai dalam array dua dimensi,
rowData, dengan nama kolom, columnNames.
JTable (dm TableModel)
Menciptakab sebuah JTable yang diawali dengan dm sebagai model data, model
kolom default, dan model pilihan default.
JTable (dm TableModel, cm TableColumnModel)
Menciptkan sebuah JTable yang diawali dengan dm sebagai model data, cm
sebagai model kolom, dan model pilihan default.
JTable (dm TableModel, cm TableColumnModel, sm ListSelectionModel)
Menciptkan sebuah JTable yang diawali dengan dm sebagai model data, cm
sebagai model kolom, dan sm sebagai model seleksi.
JTable (Vector rowData, Vector columnNames)
Menciptakan sebuah JTable untuk menampilkan nilai-nilai dalam vektor Vektor,
rowData, dengan nama kolom, columnNames.
Method
Kuliah Pemrograman Desktop Java [Badiyanto, S..Kom. M.Kom] …………………
void addColumn (TableColumn aColumn)
aColumn menambahkan ke akhir array kolom yang dimiliki oleh model Jtable
kolom ini.
void addColumnSelectionInterval (int index0, int index1)
Menambah kolom dari index0 untuk index1, inklusif, untuk pilihan saat ini.
void addNotify ()
Panggilan metode configureEnclosingScrollPane.
void addRowSelectionInterval (int index0, int index1)
Menambahkan baris dari index0 untuk index1, inklusif, untuk pilihan saat ini.
void clearSelection ()
Deselects semua kolom dan baris yang dipilih.
void columnAdded (TableColumnModelEvent e)
Dipanggil saat kolom ditambahkan ke model kolom tabel.
int columnAtPoint (Point point)
Mengembalikan nilai indeks kolom yang terletak pada titik, atau -1 jika hasilnya
tidak dalam jangkauan [0, getColumnCount () -1].
TableColumn getColumn (Object identifier)
Mengembalikan nilai objek TableColumn untuk kolom dalam tabel yang identifier
adalah sama dengan identifier, bila dibandingkan menggunakan sama.
Class getColumnClass (int column)
Mengembalikan nilai jenis kolom yang muncul pada tampilan di kolom kolom
posisi.
int getColumnCount ()
Mengembalikan nilai jumlah kolom dalam model kolom.
TableColumnModel getColumnModel ()
Mengembalikan nilai TableColumnModel yang berisi semua informasi kolom dari
tabel ini.
String getColumnName (int column)
Mengembalikan nilai nama kolom yang muncul pada tampilan di kolom kolom
posisi.
boolean getColumnSelectionAllowed ()
Pengembalian benar jika kolom dapat dipilih.
Kuliah Pemrograman Desktop Java [Badiyanto, S..Kom. M.Kom] …………………
int getSelectedColumn ()
Mengembalikan nilai indeks dari kolom yang dipilih pertama, -1 jika tidak ada
kolom yang dipilih.
int getSelectedColumnCount ()
Mengembalikan nilai jumlah kolom yang dipilih.
int [] getSelectedColumns ()
Mengembalikan nilai indeks dari semua kolom yang dipilih.
int getSelectedRow ()
Mengembalikan nilai indeks dari baris yang dipilih pertama, -1 jika tidak ada baris
yang dipilih.
int getSelectedRowCount ()
Mengembalikan nilai jumlah baris yang dipilih.
int [] getSelectedRows ()
Mengembalikan nilai indeks dari semua baris yang dipilih.
boolean isCellEditable(int row, int column)
Pengembalian benar jika sel pada baris dan kolom dapat diedit.
boolean isCellSelected(int row, int column)
Pengembalian benar jika sel pada posisi tertentu dipilih.
boolean isColumnSelected(int column)
Pengembalian benar jika kolom pada indeks tertentu dipilih.
boolean isEditing ()
Pengembalian benar jika sebuah sel sedang diedit.
boolean isRowSelected(int row)
Pengembalian benar jika baris pada indeks tertentu dipilih.
Contoh :
Bualtah Frame Baru
Compnent Pallete pilih dan mesukkan Jtable
Kuliah Pemrograman Desktop Java [Badiyanto, S..Kom. M.Kom] …………………
Properties
Untuk mengatur jumlah kolom dan baris makan pilih properti Model
•
Tipe tabel Colum untuk menambahkan dan menghapus kolom
Kuliah Pemrograman Desktop Java [Badiyanto, S..Kom. M.Kom] …………………
•
•
•
Title : judul kolom
Type : tipe data
Editable : untuk memberikan nilai true untuk dapat diubah dan false hanya bisa
dibaca saja
•
Untuk mengubah model tabel juga bisa lewat customize Code
Kuliah Pemrograman Desktop Java [Badiyanto, S..Kom. M.Kom] …………………
Pilih Custom property
Kuliah Pemrograman Desktop Java [Badiyanto, S..Kom. M.Kom] …………………
Ubah bagian ini
Ubahlah menjadi kode berikut :
Kuliah Pemrograman Desktop Java [Badiyanto, S..Kom. M.Kom] …………………
Hasil Eksekusi
Contoh berikutnya :
Custom Properties
Kuliah Pemrograman Desktop Java [Badiyanto, S..Kom. M.Kom] …………………
Tambahkan Kode
Deklarasi isi tabel adalah Vector 1 dimensi untuk judul kolom (header), Vector 2
dimensi untuk isi tabel
import java.util.Vector;
import javax.swing.table.TableColumn;
public class NewJFrame2 extends javax.swing.JFrame {
private Vector<Vector<String>> data;
private Vector<String> header;
//tambahkan isi tabel
/** Creates new form NewJFrame2 */
public NewJFrame2() {
header = new Vector<String> ();
header.add("No");
header.add("Nama");
header.add("Alamat");
Kuliah Pemrograman Desktop Java [Badiyanto, S..Kom. M.Kom] …………………
data = new
Vector<Vector<String>> ();
String isi[] = {"Satu","Dua","Tiga","Empat"};
String isi2[] = {"Satu2","Dua2","Tiga2","Empat2"};
for (int i=0; i<=4-1; i++)
{
Vector row = new Vector(3);
row.addElement(""+i);
row.addElement(isi[i]);
row.addElement(isi2[i]);
data.addElement(row);
}
initComponents();
// mengatur lebar kolom
jTable1.setAutoResizeMode(jTable1.AUTO_RESIZE_OFF);
TableColumn col = null;
col=jTable1.getColumnModel().getColumn(0);
col.setPreferredWidth(30);
col=jTable1.getColumnModel().getColumn(1);
col.setPreferredWidth(75);
col=jTable1.getColumnModel().getColumn(2);
col.setPreferredWidth(120);
memperoleh nilai dan kolom dan isi shell pada tabel , pada event tabel di klik
private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
int k =jTable1.getSelectedColumn();
int b =jTable1.getSelectedRow();
jLabel3.setText("kolom="+k+",baris="+b);
jTextField1.setText(jTable1.getValueAt(b,0).toString());
jTextField2.setText(jTable1.getValueAt(b,1).toString());
jTextField3.setText(jTable1.getValueAt(b,2).toString());
}
Hasil Eksekusi
Kuliah Pemrograman Desktop Java [Badiyanto, S..Kom. M.Kom] …………………
Isi tabel melibatkan loop
Kode program
/**
*
* @author badi
*/
import java.util.Vector;
import javax.swing.table.TableColumn;
Kuliah Pemrograman Desktop Java [Badiyanto, S..Kom. M.Kom] …………………
public class NewJFrame4 extends javax.swing.JFrame {
/** Creates new form NewJFrame4 */
private Vector<Vector<String>> data;
private Vector<String> header;
public NewJFrame4() {
header = new Vector<String> ();
header.add("i");
header.add("j=j+i");
int j=0;
data = new
Vector<Vector<String>> ();
for (int i=0; i<=100; i++)
{
Vector row = new Vector(2);
row.addElement(""+i);
j=j+i;
row.addElement(""+j);
data.addElement(row);
}
initComponents();
jTable1.setAutoResizeMode(jTable1.AUTO_RESIZE_OFF);
TableColumn col = null;
col=jTable1.getColumnModel().getColumn(0);
col.setPreferredWidth(30);
col=jTable1.getColumnModel().getColumn(1);
col.setPreferredWidth(75);
}
/** 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();
jTable1 = new javax.swing.JTable();
jLabel1 = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
jTextField2 = new javax.swing.JTextField();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Tabel Deret");
Kuliah Pemrograman Desktop Java [Badiyanto, S..Kom. M.Kom] …………………
jTable1.setModel(new javax.swing.table.DefaultTableModel(
data, header
));
jTable1.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jTable1MouseClicked(evt);
}
});
jScrollPane1.setViewportView(jTable1);
jLabel1.setText("jLabel1");
jTextField1.setText("jTextField1");
jTextField2.setText("jTextField2");
…………………..
…………………………..
pack();
}// </editor-fold>
private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
int k =jTable1.getSelectedColumn();
int b =jTable1.getSelectedRow();
jLabel1.setText("kolom="+k+",baris="+b);
jTextField1.setText(jTable1.getValueAt(b,0).toString());
jTextField2.setText(jTable1.getValueAt(b,1).toString());
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NewJFrame4().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JLabel jLabel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jTable1;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
// End of variables declaration
}
Kuliah Pemrograman Desktop Java [Badiyanto, S..Kom. M.Kom] …………………
Kuliah Pemrograman Desktop Java [Badiyanto, S..Kom. M.Kom] …………………