PENGGUNAAN JTABLE. Gambar 1. Aplikasi 1 : TestTable1.java

dokumen-dokumen yang mirip
Praktikum JTable. Gambar 1

BAB V JTable. JTable () Default menciptakan JTable yang diawali dengan model default data, model kolom default, dan model pilihan default.

Modul 7 Praktikum Pemrograman Visual

Menghubungkan Database Access Menggunakan Netbeans Oleh : Yuliana Setiowati

Prosedur dan Fungsi. Ciri prosedur pada java selalu dimulai dengan : private/public void namaprosedur ( tipedataparameter1 namaparameter1,

BAB I PROJECT NETBEANS DAN GUI SEDERHANA

Aplikasi Grafik Menggunakan Netbeans

Praktikum 6a Melakukan koneksi dengan basis data

- Menuliskan business logic dari aplikasi untuk mengakses data source

BAB II. Manggunakan JComboBox

1. Buat tampilan menggunakan seperti ini dan simpan dalam class MainFrame.java

Gambar 1. Single Linked List

- Setiap pola yang menggambarkan permasalahan yang terjadi secara berulang, serta

LAMPIRAN LISTING PROGRAM

- Menuliskan business logic dari aplikasi untuk mengakses data source

BAHASA PEMROGRAMAN JAVA

LAPORAN TUGAS BESAR PEMODELAN DAN SIMULASI

Koneksi Java GUI-Database

Materi 3 Pemrograman Visual

MODUL 2 SELECTION & LOOPING PADA FORM

jtextfield jcombobox

Modul Praktikum 9 BAB IX LAYOUTING. Departemen Teknologi Informasi Telkom Applied Science School H a l

BAB IX MEMBUAT FORM 9.1 Membuat Form Secara Konvensional

BAGIAN XIII GRAPHICAL USER INTERFACE DENGAN SWING. Praktikum I : Menggunakan JFrame, JTextField, JLabel dan JButton

Pemrograman Lanjut. Instance Variable Access Modifier Set dan Get Method

BAB IV IMPLEMENTASI DAN PENGUJIAN

int i = 0; while (i < 10) { System.out.println( Informatika Unpas ); i++; }

LAPORAN TUGAS MINGGUAN III PEMBUATAN KALKULATOR ( MENGHITUNG TOTAL TRANSAKSI) BERBASIS JAVA

IKG2I4 / Software Project I

JAVA SWING. Swing merupakan library pada java untuk membuat sebuah tampilan seperti

JList, JComboBox, JTable

1. Mana diantara pilihan-pilihan berikut ini yang merupakan penulisan loop yang benar?

Percabangan & Perulangan

APLIKASI PEMBENTUKAN BADAN DAN BERAT IDEAL MENGGUNAKAN SOFTWARE NETBEANS Hafit Risky bin Hatim Dosen Pembimbing: Suhartini, S.

GUI & Event Handling. Viska Mutiawani, M.Sc. 1 Viska Mutiawani - Informatika FMIPA Unsyiah

PEMOGRAMAN APLIKASI BERGERAK (Java ME) Company LOGO

visit :

Tugas Pemrograman berbasis Java. (menggunakan Jcreator) GUI (Graphical User Interface) : Prima Satya Juhandana NIM :

Mengolah Row Jtable Berbasis Vector pada Pemrograman Java (Working with Rows in Vector Based Jtable in Java Programming Language)

PRAKTIKUM IV JDBC. Siswa dapat membuat aplikasi database sederhana menggunakan koneksi JDBC.

PRAKTEK 1 CLASS, ATTRIBUTE, METHOD, DAN OBJEK

Mengatur Rata Kanan, Rata Tengah Pada jtable NetBeans

IF PEMROGRAMAN LANJUT EVENT. Oleh : Andri Heryandi, M.T.

BAB II VARIABEL DAN TIPE DATA

2 TIPE DATA DAN VARIABEL

IMPLEMENTASI MODEL VIEW CONTROLLER (MVC) DESIGN PATTERN

Materi 5 Pemrograman Visual

TUGAS 1 Membuat Program Untuk Menghitung Magnetic Tape

Pemrograman Java III

Sendy Ferdian Sujadi

MODUL PRAKTIKUM BERORIENTASI OBJEK NINF615 SEMESTER GASAL 2016/2017 PROGRAM STUDI S1 TEKNIK INFORMATIKA

Badiyanto, S.Kom.,M.Kom. Tujuan Intruksional. Mampu menjelaskan dan menggunakan komponen pemilihan JListbox. pemilihan JComboBox

Konsep Dasar Pemrograman Berorientasi Objek

BAHASA PEMROGRAMAN JAVA PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM YOGYAKARTA

IKG2I4 / Software Project I

PEMROGRAMAN JAVA : VARIABEL DAN TIPE DATA

GUI (Grapichal User Interface)

BAB Argument Command-Line dan System Properties

INSTRUKSI PENCABANGAN

E-Book PEMROGRAMAN BERORIENTASI OBJEK. Disusun Oleh: Arfian Hidayat, S.Kom

Membuat dan Menggunakan Class

Materi 6 Pemrograman Visual

PEMOGRAMAN APLIKASI BERGERAK (Java ME)

Slide 6: Writing Classes

Membuat Aplikasi Database dengan Netbeans

Bab 7 Komponen Dasar Visual Basic 29 BAB VII KOMPONEN DASAR VISUAL BASIC TUJUAN PRAKTIKUM

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA STACK

Identifier, Keywords, Variabel, Tipe Data Primitif dan Operator PBO. Ramos Somya

APLIKASI PERHITUNGAN NILAI MAHASISWA. Untuk membuat aplikasi nilai mahasiswa, langkah-langkahnya adalah sebagai berikut :

Pemrograman Berorientasi Obyek (IT251) Ramos Somya, S.Kom., M.Cs.

Bab 8. Dasar-Dasar OOP

Penggunaan Netbeans IDE, Hello World, variable dan Operator aritmetika.

TUJUAN. Memahami Koneksi dan Pemrosesan Basis Data di Java Memahami JDBC Menggunakan MySQL pada program Java

Materi 2 Pemrograman Visual

Variabel dengan tipe dasar hanya dapat menyimpan sebuah nilai

GUI & Event Handling. Viska Mutiawani, M.Sc

TABEL DATABASE TABEL - KODE BARANG TOKO INFOMART BARANG - NAMA BARANG - HARGA

(JCOMBOBOX) Pulut Suryati

Materi : GUI AWT & SWING.

Pemrograman Web Lanjut

Array Multidimensi. Pemrograman Dasar. Java

Bab 7. TiledLayer. Menyusun graphics dari TiledLayer dan di masukkan dalam LayerManager

1.Tujuan. 2. Latar Belakang. Mendefinisikan superclasses dan subclasses Override method dari superclasses Membuat method final dan class final

Belajar Java 2 Tambah, Simpan & Cari Data di Netbeans dengan Database MySQL

PERCOBAAN 1 : Ketik program di bawah ini, bila terjadi kasalahan waktu compile dan runtime, betulkan!

A. TUJUAN PEMBELAJARAN

Pemrograman Lanjut Class, Instance Variable dan Method PTIIK

Pemrograman Java III

Pemrograman Dasar A R R A Y

MATCH GAME Target Praktikum :

Modul Praktikum 3 Pemograman Berorientasi Objek

Badiyanto, S.Kom., M.Kom. PBO java

BAB I PENGENALAN NETBEANS

Pemrograman Lanjut. Interface

2.1 if Jenis-jenis Percabangan if adalah if, if else, If else if else if - else

Pemrograman. Pertemuan-3 Fery Updi,M.Kom

ABSTRACT & INTERFACE. Pemrograman Lanjut Herman Tolle

Modul Pembangunan Aplikasi Basis Data Lanjut 2014

Form dan Kontrol. 5.1 Form

Membuat Menu Login Sederhana [Full Coding]

Transkripsi:

PENGGUNAAN JTABLE Dengan class JTable kita dapat menampilkan data, juga membolehkan user untuk mengedit data. Gambar 1 merupakan contoh penggunaan JTable. Setiap cell menampilkan sebuah item data. Setiap header kolom merupakan kolom dari tabel. Setiap kolom mempunyai tipe data yang sama. Header tabel menampilkan header kolom. Aplikasi 1 : TestTable1.java Gambar 1 Buatlah sebuah class dengan nama TestTable1. Desain form seperti gambar 2. Pada aplikasi terdapat label dan JTable beri nama dengan jtable. Buatlah isi dari TestTable1.java seperti program di bawah ini. Pada TestTable1 menggunakan class MyTableModel yang merupakan subclass dari class AbstractTableModel. Output program ditunjukkan pada gambar 3. Gambar 2 public class TestTable1 extends javax.swing.jframe { * Creates new form TestTable1 public TestTable1() { super("testtable1"); 1

70)); initcomponents(); jtable.setmodel(new MyTableModel()); jtable.setpreferredscrollableviewportsize(new Dimension(500, TableColumn column = null; for (int i = 0; i < 5; i++) { column = jtable.getcolumnmodel().getcolumn(i); if (i == 2) { column.setpreferredwidth(100); //sport column is bigger else { column.setpreferredwidth(50); public static void main(string args[]) { java.awt.eventqueue.invokelater(new Runnable() { public void run() { new TestTable1().setVisible(true); ); // Variables declaration - do not modify private javax.swing.jlabel jlabel1; private javax.swing.jscrollpane jscrollpane1; private javax.swing.jtable jtable; public class MyTableModel extends AbstractTableModel { private String[] columnnames = {"First Name", "Last Name", "Sport", "# of Years", "Vegetarian"; private Object[][] data = { {"Mary", "Campione", "Snowboarding", new Integer(5), new Boolean(false), {"Alison", "Huml", "Rowing", new Integer(3), new Boolean(true), {"Kathy", "Walrath", "Knitting", new Integer(2), new Boolean(false), {"Sharon", "Zakhour", "Speed reading", new Integer(20), new Boolean(true), {"Philip", "Milne", "Pool", new Integer(10), new Boolean(false) ; public int getcolumncount() { return columnnames.length; public int getrowcount() { return data.length; public String getcolumnname(int col) { 2

return columnnames[col]; public Object getvalueat(int row, int col) { return data[row][col]; * JTable uses this method to determine the default renderer/ * editor for each cell. If we didn't implement this method, * then the last column would contain text ("true"/"false"), * rather than a check box. public Class getcolumnclass(int c) { return getvalueat(0, c).getclass(); * Don't need to implement this method unless your table's * editable. public boolean iscelleditable(int row, int col) { //Note that the data/cell address is constant, //no matter where the cell appears onscreen. if (col < 2) { return false; else { return true; * Don't need to implement this method unless your table's * data can change. public void setvalueat(object value, int row, int col) { data[row][col] = value; firetablecellupdated(row, col); Output Program : 3

Gambar 3 Membuat Table Model Setiap table mendapatkan data dari sebuah object yang mengimplementasikan interface TableModel. Cara mengimplementasikan table model sangat sederhana, yaitu dengan membuat subclass dari AbstractTableModel (class MyTableModel). Pada fungsi iscelleditable, kolom 0 dan 1 tidak bisa diedit sedangkan kolom lainnya bisa diedit. Gambar 4 public class MyTableModel extends AbstractTableModel { private String[] columnnames = {"First Name", "Last Name", "Sport", "# of Years", "Vegetarian"; private Object[][] data = { {"Mary", "Campione", "Snowboarding", new Integer(5), new Boolean(false), {"Alison", "Huml", "Rowing", new Integer(3), new Boolean(true), {"Kathy", "Walrath", "Knitting", new Integer(2), new Boolean(false), {"Sharon", "Zakhour", "Speed reading", new Integer(20), new Boolean(true), {"Philip", "Milne", 4

; "Pool", new Integer(10), new Boolean(false) public int getcolumncount() { return columnnames.length; public int getrowcount() { return data.length; public String getcolumnname(int col) { return columnnames[col]; public Object getvalueat(int row, int col) { return data[row][col]; * JTable uses this method to determine the default renderer/ * editor for each cell. If we didn't implement this method, * then the last column would contain text ("true"/"false"), * rather than a check box. public Class getcolumnclass(int c) { return getvalueat(0, c).getclass(); * Don't need to implement this method unless your table's * editable. public boolean iscelleditable(int row, int col) { //Note that the data/cell address is constant, //no matter where the cell appears onscreen. if (col < 2) { return false; else { return true; * Don't need to implement this method unless your table's * data can change. public void setvalueat(object value, int row, int col) { data[row][col] = value; firetablecellupdated(row, col); 5

Mengubah Lebar Kolom Secara default lebar kolom pada table adalah sama, dan kolom-kolom secara otomatis akan mengisi keseluruhan lebar table. Jika table kita kecilkan atau diperbesar (pada saat user ingin mengubah window), semua lebar kolom juga akan berubah. User juga bisa mengubah lebar kolom dengan melakukan drag pada kolom. Kita juga dapat mengatur lebar kolom, gunakan fungsi setpreferredwidth() pada setiap kolom table. Pada source code TestTable1 terdapat program seperti di bawah ini, dimana kolom 3 mempunyai lebar kolom yang paling besar dibandingkan kolom lainnya. TableColumn column = null; for (int i = 0; i < 5; i++) { column = jtable.getcolumnmodel().getcolumn(i); if (i == 2) { column.setpreferredwidth(100); //sport column is bigger else { column.setpreferredwidth(50); Pada program diatas, setiap kolom pada table dinyatakan dengan object TableColumn. Pada TableColumn menyediakan methods getxxx dan setxxx untuk minumum, maksimum dan yang diinginkan dari lebar kolom. Aplikasi 2 : TestTable2.java Pada aplikasi 2 ini jika baris pada table kita pilih (baris yang kita pilih tunggal) maka data akan ditampilkan pada textfield. Desainlah aplikasi seperti Gambar 5 dan berilah nama text field dan combo box seperti table 1. Output program ditunjukkan pada gambar 6. 6

Gambar 5 Tabel 1 Nama Variabel pada Aplikasi 2 Nama TextField First Name tffirstname Last Name tflastname Sport tfsport Number of Sport tfnum Nama ComboBox Vegetarian cbvegetarian public class TestTable2 extends javax.swing.jframe { * Creates new form TestTable2 public TestTable2() { super("testtable2"); initcomponents(); jtable.setmodel(new MyTableModel()); jtable.setpreferredscrollableviewportsize(new Dimension(500, 70)); pilih(); void pilih (){ jtable.setselectionmode(listselectionmodel.single_selection); ListSelectionModel rowsm = jtable.getselectionmodel(); rowsm.addlistselectionlistener(new MyList()); class MyList implements ListSelectionListener{ public void valuechanged(listselectionevent e) { if (e.getvalueisadjusting()) return; ListSelectionModel lsm = (ListSelectionModel) e.getsource(); int selectedrow = lsm.getminselectionindex(); TableModel tm = jtable.getmodel() ; tffirstname.settext(tm.getvalueat(selectedrow,0).tostring()) ; tflastname.settext(tm.getvalueat(selectedrow,1).tostring()) ; tfsport.settext(tm.getvalueat(selectedrow,2).tostring()) ; tfnum.settext(tm.getvalueat(selectedrow,3).tostring()) ; if (tm.getvalueat(selectedrow,4).tostring().equals("true")) cbvegetarian.setselectedindex(0); else cbvegetarian.setselectedindex(1); public static void main(string args[]) { java.awt.eventqueue.invokelater(new Runnable() { public void run() { new TestTable2().setVisible(true); ); 7

// Variables declaration - do not modify private javax.swing.jcombobox cbvegetarian; private javax.swing.jcombobox jcombobox1; private javax.swing.jlabel jlabel1; private javax.swing.jlabel jlabel2; private javax.swing.jlabel jlabel3; private javax.swing.jlabel jlabel4; private javax.swing.jlabel jlabel5; private javax.swing.jlabel jlabel6; private javax.swing.jscrollpane jscrollpane1; private javax.swing.jtable jtable; private javax.swing.jtextfield tffirstname; private javax.swing.jtextfield tflastname; private javax.swing.jtextfield tfnum; private javax.swing.jtextfield tfsport; // End of variables declaration Output Program : Gambar 6 Mendeteksi Pemilihan User Gunakan fungsi setselectionmode untuk menentukan mode pemilihan (Single Selection, Multiple Interval Selection dan Single Interval Selection). Untuk menentukan single selection adalah sbb : 8

void pilih (){ //untuk menentukan single selection jtable.setselectionmode(listselectionmodel.single_selection); ListSelectionModel rowsm = jtable.getselectionmodel(); rowsm.addlistselectionlistener(new MyList()); class MyList implements ListSelectionListener{ public void valuechanged(listselectionevent e) { //untuk menghilangkan informasi ekstra if (e.getvalueisadjusting()) return; ListSelectionModel lsm = (ListSelectionModel) e.getsource(); int selectedrow = lsm.getminselectionindex(); TableModel tm = jtable.getmodel() ; tffirstname.settext(tm.getvalueat(selectedrow,0).tostring()) ; tflastname.settext(tm.getvalueat(selectedrow,1).tostring()) ; tfsport.settext(tm.getvalueat(selectedrow,2).tostring()) ; tfnum.settext(tm.getvalueat(selectedrow,3).tostring()) ; if (tm.getvalueat(selectedrow,4).tostring().equals("true")) cbvegetarian.setselectedindex(0); else cbvegetarian.setselectedindex(1); Aplikasi 3 : TestTable3.java Aplikasi sama dengan aplikasi 2, tapi jika kita klik cell pada kolom Sport akan keluar combo box. Output program ditunjukkan pada gambar 7. 9

Gambar 7 public TestTable3() { super("testtable3"); initcomponents(); jtable.setmodel(new MyTableModel()); jtable.setpreferredscrollableviewportsize(new Dimension(500, 70)); setupsportcolumn(jtable, jtable.getcolumnmodel().getcolumn(2)); pilih(); public void setupsportcolumn(jtable table, TableColumn sportcolumn) { //Set up the editor for the sport cells. JComboBox combobox = new JComboBox(); combobox.additem("snowboarding"); combobox.additem("rowing"); combobox.additem("knitting"); combobox.additem("speed reading"); combobox.additem("pool"); combobox.additem("none of the above"); sportcolumn.setcelleditor(new DefaultCellEditor(comboBox)); 10

Menggunakan Combo Box sebagai Editor. Program di bawah ini untuk mensetting combo box sebagai editor sederhana.isilah combobox dengan string. Kemudian tentukan kolom yang akan diberikan editor (untuk aplikasi 3 kolom2, tabel kolom diberi nama sportcolumn). Untuk memberikan editor pada setiap baris pada kolom tersebut gunakan fungsi setcelleditor (TableCellEditor). TableColumn sportcolumn = table.getcolumnmodel().getcolumn(2);... JComboBox combobox = new JComboBox(); combobox.additem("snowboarding"); combobox.additem("rowing"); combobox.additem("chasing toddlers"); combobox.additem("speed reading"); combobox.additem("teaching high school"); combobox.additem("none"); sportcolumn.setcelleditor(new DefaultCellEditor(comboBox)); 11