Autocomplete java tidak hanya bisa dilakukan dilingkungan web menggunakan berbagai macam framework javascript seperti JQuery misalnya, tetapi bisa juga diimplementasikan pada lingkungan desktop. Pada tutorial ini saya akan membahas tentang pengimplementasian fitur autocomplete java pada aplikasi dekstop denga bantuan librarySwingX.
Untuk kesederhanaan tutorial maka kode aplikasi tidak saya tulis lengkap, hanya bagian-bagian yang penting yang saya tulis. Selain itu mengenai penggunaan layering tidak akan saya bahas lagi. Oleh karena itu, bagi yang belum memahami layering saya anjurkan untuk mempelajarinya terlebih dahulu disini.
Hasil akhir aplikasi adalah seperti pada gambar di bawah ini:
Setiap kali pengguna melakukan inputan pada combobox maka sistem akan memberikan rekomendasi nama pelanggan yang paling mendekati inputan yang dilakukan oleh pengguna. Seperti gambar diatas ketika saya mengetikkan “ic” maka sistem otomatis merekomendasikan nama “ickta”.
Jangan lupa tambahkan library Swingx dan MySql JDBC Driver kedalam classpath dari project autocomplete java.
langkah#1 Membuat Domain Model Project Autocomplete Java
class Pelanggan
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
package autocomplete.entity;
public class Pelanggan {
private String nama;
private String alamat;
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;
}
@Override
public String toString() {
return nama;
}
}
|
Langkah#2 Membuat Class Service pada Project Autocomplete Java
Class ini digunakan untuk melakukan query data dengan database. Biasanya digunakan untuk melakukan manipulasi data pada database juga. Akan tetapi, disini saya hanya menulis satu method untuk melakukan query data.
interface PelangganService
|
package autocomplete.service;
import autocomplete.entity.Pelanggan;
import java.util.List;
public interface PelangganService {
public List<Pelanggan> getAllPelanggan();
}
|
class PelangganServiceImplJdbc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
package autocomplete.service;
import autocomplete.entity.Pelanggan;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
public class PelangganServiceImplJdbc implements PelangganService{
Connection connection;
PreparedStatement preparedStatement;
public PelangganServiceImplJdbc(Connection connection) throws SQLException{
this.connection=connection;
preparedStatement=connection.prepareStatement("select * from pelanggan");
}
@Override
public List<Pelanggan> getAllPelanggan() {
try {
List<Pelanggan> pelanggans=new ArrayList<Pelanggan>();
ResultSet rs=preparedStatement.executeQuery();
while(rs.next()){
Pelanggan pelanggan=new Pelanggan();
pelanggan.setNama(rs.getString("nama"));
pelanggan.setAlamat(rs.getString("alamat"));
pelanggans.add(pelanggan);
}
return pelanggans;
} catch (SQLException ex) {
Logger.getLogger(PelangganServiceImplJdbc.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}
}
//autocomplete java
|
Langkah#3 Membuat UI Project Autocomplete Java
Saya menggunakan UI yang simpel saja seperti ini:
Tambahkan sebuah method untuk inisialisasi data pada combobox yang diambil dari database dan juga ubah constructor-nya sehingga menjadi seperti ini:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
public MainFrame() {
initComponents();
initCombobox();
}
private void initCombobox(){
PelangganService pelangganService=Main.getPelangganService();
List<Pelanggan> pelanggans=pelangganService.getAllPelanggan();
jComboBoxPelanggan.addItem("");
for(Pelanggan p:pelanggans){
jComboBoxPelanggan.addItem(p);
}
AutoCompleteDecorator.decorate(jComboBoxPelanggan);
}
//autocomplete java
|
Setelah itu jangan lupa memodifikasi Class Main menjadi seperti berikut ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
package autocomplete;
import autocomplete.service.PelangganService;
import autocomplete.service.PelangganServiceImplJdbc;
import autocomplete.ui.MainFrame;
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
import java.sql.SQLException;
public class Main {
public static PelangganService pelangganService;
public static PelangganService getPelangganService(){
return pelangganService;
}
public static void main(String[] args) throws SQLException {
MysqlDataSource dataSource=new MysqlDataSource();
dataSource.setUser("root");
dataSource.setPassword("root");
dataSource.setDatabaseName("autocomplete");
dataSource.setServerName("localhost");
pelangganService=new PelangganServiceImplJdbc(dataSource.getConnection());
new MainFrame().setVisible(true);
}
}
//autocomplete java
|
Coba jalankan Class ini dan kamu bisa merasakan fitur autocomplete. Jika masih ada yang kebingungan silahkan untuk diskusi bersama melalui fitur komentar pada tutorial ini
Post a Comment