Anda di halaman 1dari 37

Setelah kita mengerti tentang Thread-thread dasar yang terdapat pada Java Swing dan

mengetahui bagaimana cara menggunakan Background Thread dengan SwingWorker


(pembahasan tentang SwingWorker bisa dilihat pada tulisan Lebih Dekat Dengan Class
SwingWorker), sekarang mari kita coba membuat sebuah Project yang menggunakan Menu
Login yang proses otentikasinya kita lakukan langsung ke database
Sebelum memulai latihan kali ini, ada beberapa hal yang harus dipersiapkan terlebih dahulu yaitu
:
- Inisialisasi Master Data Pada DataBase
- Pembuatan Project Menu Login
- Hasil Akhir
Pada tulisan kali ini saya tidak akan memberikan penjelasan source code dari baris ke baris
seperti pada tulisan-tulisan sebelumnya, tetapi sebagai gantinya penjelasan dapat dilihat pada
komentar yang terdapat pada source code yang bersangkutan supaya lebih mudah di ingat-ingat
nantinya

Inisialisasi Master Data Pada DataBase


Sebelum mulai membuat sebuah Project buatlah dahulu database dan tabel yang akan kita akses
dari aplikasi Java, untuk membuat sebuah database dan tabel yang akan kita gunakan secara
otomatis simpanlah schema database dibawah ini dengan nama MenuLoginSchema.sql :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

-- DataBase Schema Untuk Contoh MenuLogin


CREATE DATABASE `menulogin`;
USE `menulogin`;
--- Table structure for table `T_USER`
-DROP TABLE IF EXISTS `T_USER`;
CREATE TABLE `T_USER` (
`id` INT AUTO_INCREMENT NOT NULL,
`username` VARCHAR(255) DEFAULT NULL,
`password` VARCHAR(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--- Dumping data for table `T_USER`
-INSERT INTO `T_USER` (`username`,`password`) VALUES
('martin', 'menulogin'), ('ahmad','ganteng'),('slackware','linux');

Note: DataBase yang digunakan pada tulisan ini yaitu MySQL

Setelah file MenuLoginSchema.sql tersimpan pada komputer, sekarang bukalah terminal atau
command prompt kemudian masuklah kedalam direktori tempat dimana kita menyimpan file
MenuLoginSchema.sql tersebut kemudian jalankanlah perintah seperti dibawah ini :
martinus@martinusadyh:~/Downloads$ mysql -u root -padmin < MenuLoginSchema.sql

Jika tidak ada pesan error, maka seharusnya kita akan mempunyai 1 database dengan nama
menulogin dan 1 tabel dengan nama T_USER beserta isinya seperti dibawah ini :
mysql> show tables;
+---------------------+
| Tables_in_menulogin |
+---------------------+
| T_USER
|
+---------------------+
1 row in set (0.00 sec)
mysql> select * from T_USER;
+----+-----------+-----------+
| id | username | password |
+----+-----------+-----------+
| 1 | martin
| menulogin |
| 2 | ahmad
| ganteng
|
| 3 | slackware | linux
|
+----+-----------+-----------+
3 rows in set (0.00 sec)
mysql>

Jika tampilan pada terminal atau command prompt kita sudah seperti diatas, maka proses
Inisialisasi bisa dikatan sudah selesai dan kita siap untuk membuat sebuah Project

Pembuatan Project Menu Login


Sekarang buatlah sebuah Project dengan nama MenuLogin dari NetBeans IDE, kemudian
buatlah Domain classnya terlebih dahulu pada packages domain dengan nama UserApp yang
isinya adalah sebagai berikut :
40 public class UserApp {
41
private Integer id;
42
private String userName;
43
private String password;
44
45
// Generate Getter n Setter
46 }
Note: Klik UserApp.java untuk melihat source code lengkap

Urusan dengan Domain Class sudah selesai, sekarang mari kita buatkan Service layer-nya
dengan membuat sebuah packages service kemudian buatlah sebuah java interface dengan
nama LoginService seperti dibawah ini :

public interface LoginService {


37
/** Method ini akan mengecek apakah <code>username</code> dengan
38
<code>password</code>
39
* ada atau tidak di database
40
* @param username user yang ingin di cek di database
41
* @param password password untuk user
42
* @return UserApp null jika tidak ditemukan
43
*/
44
public UserApp login(String username, String password);
45
}
Note: Klik LoginService.java untuk melihat source code lengkap

Sebelum membuat implementasi dari LoginService diatas, tambahkanlah dahulu library


MySQL JDBC Driver kedalam Project hingga tampilan Node Libraries kita menjadi seperti
gambar dibawah ini :

Adding JDBC Driver

Tetap pada packages service sekarang buatlah implementasi dari LoginService diatas dengan
nama LoginServiceImpl yang isinya kurang lebih seperti dibawah ini :
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75

public class LoginServiceImpl implements LoginService {


private Connection connection;
private PreparedStatement findUserByUserAndPassword;
private final String QRY_LOGIN = "select * from T_USER where" +
" T_USER.username = ? and T_USER.password = ?";
public LoginServiceImpl(Connection connection) {
try {
this.connection = connection;
findUserByUserAndPassword =
this.connection.prepareStatement(QRY_LOGIN);
} catch (SQLException ex) {
Logger.getLogger(LoginServiceImpl.class.getName()).log(Level.SEVERE, null,
ex);
}
}
public UserApp login(String username, String password) {
try {
/* Lakukan pencarian berdasarkan username dan password */
findUserByUserAndPassword.setString(1, username);
findUserByUserAndPassword.setString(2, password);
/* Ambil resultset-nya */
ResultSet rs = findUserByUserAndPassword.executeQuery();

while (rs.next()) {
UserApp userApp = new UserApp();
userApp.setId(rs.getInt("id"));
userApp.setUserName(rs.getString("username"));
userApp.setPassword(rs.getString("password"));

76
77
78
79
return userApp;
80
}
81
} catch (SQLException ex) {
82
83
84 Logger.getLogger(LoginServiceImpl.class.getName()).log(Level.SEVERE, null,
85 ex);
}
86
87
return null;
}
}
Note: Klik LoginServiceImpl.java untuk melihat source code lengkap

Hmm.. urusan domain dan service layer sudah beres, sekarang waktu yang paling
menyenangkan yaitu membuat UI layer-nya Ok, sekarang mari kita buat sebuah Login Dialog
dengan menggunakan class JDialog dan simpanlah pada packages ui. Setelah itu, design-lah
Login Dialog tersebut hingga seperti gambar dibawah ini :

Design Login Dialog

Sekarang tambahkan sebuah label untuk pesan error dengan cara masuk ke menu Inspector dan
pada node Other Components tambahkanlah sebuah JLabel seperti gambar dibawah ini:

Menambahkan Error Label

Setelah selesai men-design Login Dialog, sekarang masuklah ke mode Source dan tambahkan 1
buah variabel bertipe boolean dan 1 buah method yaitu showDialog() tidak lupa hilangkan juga
method main. Dan hasil akhir yang kita dapatkan kurang lebih isinya seperti dibawah ini :
49 public class LoginDialog extends javax.swing.JDialog {
50
51
private boolean notLogin = true;
52
private GroupLayout gl;
53
54
/** Creates new form LoginDialog */
55
public LoginDialog(java.awt.Frame parent, boolean modal) {
56
super(parent, modal);
57
initComponents();
58
59
/* Mendeteksi penekanan icon close, jika di close keluar dari
60 aplikasi */
61
addWindowListener(new java.awt.event.WindowAdapter() {
62
63
@Override
64
public void windowClosing(java.awt.event.WindowEvent e) {
65
System.exit(0);
66
}
67
});
68
69
jProgressBar1.setVisible(false);
70
71
/* Membuat space progress bar tidak di *wrap* oleh button */
72
gl = (GroupLayout) getContentPane().getLayout();
73
gl.setHonorsVisibility(jProgressBar1, false);
74
75
/* Beri fokus ke txtUsername ketika dialog tampil */
76
txtUserName.requestFocusInWindow();
77
78
/* Posisikan dialog seakan-akan berada di tengah-2x layar */
79
setLocationRelativeTo(null);
80
}
81
82
/** This method is called from within the constructor to
83
* initialize the form.
84
* WARNING: Do NOT modify this code. The content of this method is
85
* always regenerated by the Form Editor.
86
*/
87
@SuppressWarnings("unchecked")
88
// <editor-fold defaultstate="collapsed" desc=" Generated Code ">
89
private void initComponents() {
90
....
91
}
92
// </editor-fold>
93
94
public boolean showDialog() {
95
setVisible(true);
96
return notLogin;
97
}
98
99
// Variables declaration - do not modify
100
...

101

// End of variables declaration


}

Tetap pada packages yang sama yaitu packages ui sekarang buatlah sebuah Menu Utama
dengan menggunakan class JFrame dan simpanlah dengan nama MainForm. Sedangkan pada
MainForm ini, tambahkanlah sebuah JMenuBar dan tambahkanlah 3 JMenuItem pada File atau
jMenu1 hingga tampilannya seperti gambar dibawah ini :

Design Main Form Dengan Menu Login dan Logout

Setelah semua selesai, sekarang editlah file Main.java menjadi seperti dibawah ini :
52 public class Main {
53
54
private static MainForm mainForm;
55
private static LoginService loginService;
56
57
public static MainForm getMainForm() {
58
return mainForm;
59
}
60
61
public static LoginService getLoginService() {
62
return loginService;
63
}
64
65
/** Method ini akan menginisialisassi Form Utama kemudian akan
66 melakukan
67
* proses <code>loop</code> untuk menampilkan login dialog sampai
68 nilai
69
* notLogin = FALSE baru menampilkan Menu Utama */
70
public static void initLogin() {
71
if (mainForm == null) mainForm = new MainForm();
72
boolean notLogin = Boolean.TRUE;
73
while (notLogin) {
74
notLogin = new LoginDialog().showDialog();

}
mainForm = new MainForm();
mainForm.setVisible(true);
}
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118

/** Method ini akan menginisialisasi object koneksi ke database yang

akan

* digunakan di seluruh aplikasi. */


private static void initDataBaseConnection() {
try {
MysqlDataSource dataSource = new MysqlDataSource();
/* Setting koneksi ke database */
dataSource.setUser("root");
dataSource.setPassword("admin");
dataSource.setDatabaseName("menulogin");
dataSource.setServerName("localhost");
dataSource.setPortNumber(3306);
loginService = new
LoginServiceImpl(dataSource.getConnection());
} catch (SQLException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null,
ex);
}
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
initDataBaseConnection();
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel
");
} catch (ClassNotFoundException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} catch (UnsupportedLookAndFeelException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
initLogin();
}
});
}
}

Dengan kode yang sudah kita tulis, aplikasi harusnya sudah bisa berjalan tanpa mengalami
kesalahan sama sekali. Tapi sayangnya kita belum mengimplementasikan proses login yang
sebenarnya, untuk mengimplementasikan proses login yang sebenarnya sekarang tambahkanlah
sebuah private class dengan nama WorkerLogin pada LoginDialog yang isinya kurang lebih
seperti dibawah ini :
private class WorkerLogin extends SwingWorker<UserApp, Void> {
279
@Override
280
protected void done() {
281
try {
282
if (get() != null) {
283
notLogin = false;
284
closeLoginDialog();
285
}
else
{
286
gl.replace(jProgressBar1, lblError);
287
txtUserName.requestFocusInWindow();
288
txtUserName.selectAll();
289
}
290
btnLogin.setEnabled(true);
291
jProgressBar1.setIndeterminate(false);
292
jProgressBar1.setVisible(false);
293
} catch (InterruptedException ex) {
294
295
296 Logger.getLogger(LoginDialog.class.getName()).log(Level.SEVERE, null, ex);
297
} catch (ExecutionException ex) {
298
299 Logger.getLogger(LoginDialog.class.getName()).log(Level.SEVERE, null, ex);
300
}
301
}
302
303
@Override
304
protected UserApp doInBackground() throws Exception {
305
/* Hilangkan ini jika digunakan pada production */
306
Thread.sleep(1000);
307
return Main.getLoginService().login(txtUserName.getText(),
308
String.valueOf(txtPassword.getPassword()));
309
}
}

Dan tambahkan method closeLoginDialog() dibawah method showDialog() seperti dibawah ini :
87
88
89

private void closeLoginDialog() {


this.dispose();
}

Setelah selesai membuat sebuah WorkerLogin sekarang deklarasikanlah class WorkerLogin


agar menjadi class variabel dan modifikasilah konstruktor dari LoginDialog hingga menjadi
seperti dibawah ini :
53
54
55

...
private WorkerLogin workerLogin;

56
57
58
59
60
61

/** Creates new form LoginDialog */


public LoginDialog() {
super(Main.getMainForm(), Boolean.TRUE);
initComponents();
...
}

Agar proses login berjalan ketika kita menekan tombol Login, sekarang berilah Action Listener
pada tombol Login dengan cara klik kanan kemudian pilihlah menu Event > Action >
actionPerformed[btnLoginActionPerformed] dan pastekan kode seperti dibawah ini :
private void btnLoginActionPerformed(java.awt.event.ActionEvent evt) {
244
/* Cek dahulu apakah workerLogin masih berjalan, kalau masih jalan
245
* cancel dan set ke null */
246
if (workerLogin != null && !workerLogin.isDone()) {
247
workerLogin.cancel(true);
248
workerLogin = null;
249
}
250
251
//TODO: cek untuk mengembalikan state lblError ke Progress Bar,
252
// bagaimana cara mengecek apakah lblError sudah ditambahkan atau
253
belum ?
254
try {
255
gl.replace(lblError, jProgressBar1);
256
} catch (java.lang.IllegalArgumentException ae) {
257
// Do nothing here
258
}
259
260
workerLogin = new WorkerLogin();
261
workerLogin.execute();
262
263
/* Disable tombol LOGIN, tampilkan dan jalankan PROGRESS BAR */
264
btnLogin.setEnabled(false);
265
jProgressBar1.setVisible(true);
266
jProgressBar1.setIndeterminate(true);
267
}

Sedangkan untuk tombol Cancel-nya, berikan Action Listener seperti kode dibawah ini :
240
{
241
242

private void btnCancelActionPerformed(java.awt.event.ActionEvent evt)


}

System.exit(0);

Konfigurasi pada Login Dialog sepenuhnya sudah selesai, sekarang mari kita modifikasi file
MainForm agar ketika menu Logout ditekan, maka akan menampilkan Login Dialog. Sekarang
berilah Action Event pada menu Logout dengan cara klik kanan pada menu Logout kemudian
pilihlah menu Event > Action > actionPerformed[jMenuItem2ActionPerformed] dan
pastekan kode seperti dibawah ini :
121
122 {
123

private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt)


/* Tutup form utama */

124
125
126
127

this.dispose();

/* Tampilkan LoginDialog-nya */
Main.initLogin();

Sampai disini semua proses pembuatan Project Menu Login telah selesai, dan tampilan struktur
Project kita kurang lebih seperti gambar dibawah ini :

Struktur Project Menu Login

Hasil Akhir
Jika sudah selesai, sekarang mari kita jalankan Project Menu Login tersebut dengan menekan
tombol F6 dan jika tidak ada kesalahan maka kita akan mendapatkan tampilan dari Login Dialog
seperti gambar-gambar dibawah ini :

1. Tampilan Awal Login Dialog

2. Proses Pengecekan Username dan Password ke


DataBase

3. Tampilan Ketika Proses Login Gagal

4. Menu Utama DiTampilkan Ketika Login Sukses

Akhirnya selesai juga latihannya, bagaimana menurut teman-teman ?? Kalau ada yang bingung
dengan penjelasan diatas, jangan sungkan-sungkan untuk tanya yah. Mari kita bahas barengbareng, sapa tau ada cara yang lebih baik dan elegan dari cara yang saya jelaskan disin

Beberapa hari yang lalu ada temen yang pengen tau cara membuat aplikasi database, ya
semacam step-by step tutorial gitu deh.
Ok deh sobat, kebetulan saya sedang membuat project Sistem Informasi Akuntansi. tapi yang
akan saya tunjukan kali ini hanya bagaimana cara membuat form login sedehana.
Dalam postingan kali ini saya akan tunjukan cara membuat form login sederhana.
Idenya adalah, kita akan membuat sebuah form yang tidak dapat diakses, untuk dapat di akses,
maka kita perlu login terlebih dahulu. Kemudian untuk keperluan login, kita buat sebuah form
login untuk melakukan verifikasi username dan password. Kalau password berhasil di
verifikasi maka user akan dapat menggunakan program, ya gitu deh.
Ok cukup intronya sebelum mulai membuaka netbeans, persiapkan dulu databasenya, supaya

gampang kita pake mysql. Buat table kemudian buat feld-field sebagai berikut:
kd_user varchar 6
username varchar 15
password varchar 20
nama_lengkap varchar 50
kalau sudah, sekarang buka netbeansnya, kemudian buat program baru, terserah mau di kasih
nama apa. Kalau belum tau cara buat project di netbbeans silahkan baca di http://ontaprograming.blogspot.com/2008/12/buat-project-baru-di-netbeans.html
Setelah buat project buat sebuah form yang berfungsi sebagai form utama, kaya ginilah kira-kira:

Kalau mau, temen-temen bias download source codenya di sini.


Set icon-icon pada toolbar, dan button-buttonya menjadi disable (kan ceritanya program baru
bisa di gunakan kalo udah login :)).
Setelah itu buat form satu lagi untuk form login. Gunakan JDialog untuk membuat Form login.
Yup kurang lebih kaya ginilah. Inga-inga ting he bentuk formnya terserah kalian OK.

Nah sekarang, kita buat sebuah class untuk membuat sambungan ke database. Ingat ini bagian
terpenting dari tujuan postingan ini
Buat class kemudian masukan kode sebagai berikut:
package logic;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.DriverManager;
import java.sql.ResultSet;
public class KoneksiDB {
private String localhost, username, password;
public Connection conn=null;
public Statement state=null;
public ResultSet hasil=null;
public KoneksiDB(String host, String user, String pass){
localhost=host;
username=user;
password=pass;
try{ Class.forName("org.gjt.mm.mysql.Driver");
conn=DriverManager.getConnection("jdbc:mysql://"+localhost+"/coba", username,
password);
state=conn.createStatement();
}catch(Exception e){
e.printStackTrace();
}
}
public boolean cekUser(String un, String ps){
try {
hasil = state.executeQuery("select username, password, nama_lengkap from
db_login where username='"+un+"' AND password='"+ps+"'");
hasil.last(); if(hasil.getRow()==1)return true;
else return false;
} catch (SQLException ex) {
ex.printStackTrace(); return false;
}
}
}

Nah kalo sudah, sekarang coba ngopi dulu, trus santai dulu deh sejenak trus, perhatikan kude
di atas. Kode di atas merupakan kode untuk membuat sambungan dengan database. Kurang jelas
baca lagi postingan
http://onta-programing.blogspot.com/2008/12/susah-koneksi-java-ke-database-siapa.html
Sekarang buat sebuah class main, yaitu sebuah class dimana kita akan menjalankan aplikasi.
Jadi ada satu hal yang perlu di perhatikan adalah selalu pisahkan logic program dengan form.
Ok di bawah kode public static void main(String args[]) ketikan kode berikut:

try{
javax.swing.UIManager.setLookAndFeel(javax.swing.UIManager.getSystemLookAndFeelClass
Name());
}catch(Exception e){
e.printStackTrace();
}
javax.swing.SwingUtilities.invokeLater(new Runnable(){
public void run(){
form.FUtama app=new form.FUtama();
app.setVisible(true);
}
});
Fungsinya untuk menampilkan form utama yang kita buat tadi.
Nah kalau sudah .. lanjutin aja ke bagian 2 ya sok klik disini nya.
Wah ternyata banyak juga yah hehe.
Ok deh sekarang kita lanjutkan.
Setelah itu kembali ke frame utama yang telah kita buat kemudian rubah view menjadi
sourcecode

Kemudian buat sebuah method


activeForm()
sebagai berikut:
public void activeForm(Boolean b){
jButton1.setEnabled(b);
jButton2.setEnabled(!b);
jButton3.setEnabled(b);
jButton4.setEnabled(b);
jButton5.setEnabled(b);
jButton6.setEnabled(b);
jButton7.setEnabled(b);
jButton8.setEnabled(b);
jButton9.setEnabled(b);
}

jButton1- jButton9 adalah tombol yang kita buat dalam aplikasi

masih pada frame utama klik kanan tombol yang sudah temen-temen persiapkan untuk
memunculkan frame login, kalau saya tombol ini:

Kemudian pilih Event->action->actionPerformed, trus ketikan kode berikut:


dLogin=new FLogin(this, true);
dLogin.setVisible(true);
if(dLogin.userActive) activeForm(true); else activeForm(false);

tentu saja deklarasikan terlebih dahulu dlogin nya OK.


kalau sudah kembali ke FLogin klik kanan pada Tombol login kemudian pilih
Event->action->actionPerformed. Kemudian ketikan kode berikut:
String user, ps;
user=jTextField1.getText();
ps= String.valueOf(jPasswordField1.getPassword());
logic.KoneksiDB koneksi=new logic.KoneksiDB("localhost", "root", "opik");
boolean userAda=koneksi.cekUser(user, ps);
if(userAda){
userActive=true;
this.setVisible(false);
}else{
userActive=false;
JOptionPane.showMessageDialog(null, "Username atau password tidak Cocok,
ulangi lagi");
}

Usrname dan password databasenya sesuaikan dengan username dan password di kompi kalian
Kalau sudah, klik kanan pada Tombol batal kemudian pilih Event->action->actionPerformed.
Kemudian ketikan kode berikut:
this.setVisible(false);
Nah Sekarang Coba run dan Jalankan kira-kira tampilannya kayak gini:

Yup memang sederhana. Postingan ini memang dibuat untuk menunjukan pada temen-temen
bahwa mudah membuat aplikasi database, apalagi dibantu dengan netbeans,
Ok deh Selamat Mencoba!, Punya Ide lain??? Kirim komentar yaaaaaa

Contoh Program Tabbed Panel di Java


Posted at November 1, 2010

Contoh program berikut ini mendemonstrasikan bagaimana membuat panel-panel dalam bentuk
Tab di java. Class yang digunakan adalah JTabbedPane.

Berikut ini tampilannya:

Berikut ini contoh programnya:


01 import java.awt.*;
02 import java.awt.event.*;
03 import javax.swing.*;
04
05

public class TabbedPaneDemo extends JFrame


{

06

private JTabbedPane tabPane;

07

private JLabel label1, label2, label3;

08

private JPanel panel1, panel2, panel3;

09
10
11

public TabbedPaneDemo () {
super ("Tabbed Pane Demo");

12
13

tabPane = new JTabbedPane ();

14

label1 = new JLabel ("Panel pertama", SwingConstants.CENTER);

15

panel1 = new JPanel ();

16
17

panel1.add(label1);
tabPane.addTab ("Tab Pertama", null, panel1, "Panel
Pertama");

18
19

label2 = new JLabel ("Panel kedua", SwingConstants.CENTER);

20

panel2 = new JPanel ();

21

panel2.setBackground(Color.ORANGE);

22

panel2.add(label2);

23

Icon icon = new ImageIcon ("images/new.gif");

24

tabPane.addTab ("Tab Kedua", icon, panel2, "Panel Kedua");

25
26

label3 = new JLabel ("Panel ketiga", SwingConstants.CENTER);

27

panel3 = new JPanel ();

28

panel3.setBackground(Color.YELLOW);

29

panel3.setLayout(new BorderLayout());

30

panel3.add(new JButton ("North"), BorderLayout.NORTH);

31

panel3.add(new JButton ("West"),

BorderLayout.WEST);

32

panel3.add(new JButton ("East"),

BorderLayout.EAST);

33

panel3.add(new JButton ("South"), BorderLayout.SOUTH);

34

panel3.add(label3);

35

tabPane.addTab ("Tab Ketiga", null, panel3, "Panel Ketiga");

36
37

getContentPane().add(tabPane);

38
39

setSize (400,300);

40

setLocationRelativeTo (null);

41

setVisible (true);

42

43
44

public static void main (String args[])


{

45

TabbedPaneDemo test = new TabbedPaneDemo ();

46

test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

47

48 }

Membuat Form Login Sederhana


Posted at January 27, 2010

Contoh program sederhana yang menampilkan form login di dalam JFrame. Inputan username
berupa JTextField dan inputan password berupa JPasswordField serta tombol dibuat dengan
JButton. Form sederhana ini juga mendemonstrasikan adanya Listener berupa ActionListener.
01 import java.awt.*;
02 import java.awt.event.*;
03 import javax.swing.*;
04
05

public class SimpleLogin extends JFrame implements ActionListener


{

06

private JLabel label1, label2;

07

private JTextField txtUser;

08

private JPasswordField pwdPass;

09

private JButton btnLogin, btnExit;

10
11
12

public SimpleLogin() {
super ("Login here...");

13
14

Container container = getContentPane();

15

container.setLayout(new FlowLayout());

16
17

label1 = new JLabel ("Username : ");

18

label2 = new JLabel ("Password : ");

19
20

txtUser = new JTextField (20);

21

txtUser.setToolTipText("Input Username");

22

pwdPass = new JPasswordField(20);

23
24

btnLogin = new JButton ("Login");

25

btnLogin.addActionListener(this);

26

btnExit = new JButton ("Exit");

27

btnExit.addActionListener(this);

28
29

container.add(label1);

30

container.add(txtUser);

31

container.add(label2);

32

container.add(pwdPass);

33

container.add(btnLogin);

34

container.add(btnExit);

35
36

setSize (300,200);

37

setVisible (true);

38

39
40

public static void main (String args[])


{

41

SimpleLogin test = new SimpleLogin();

42

test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

43

44
45

private String user = "", pass = "";

46

public void actionPerformed (ActionEvent e) {

47

if (e.getSource() == btnLogin) {

48

user = txtUser.getText();

49

pass = pwdPass.getText();

50

if (user.equals("achmatim") && pass.equals("otim")) {

51
52
53

JOptionPane.showMessageDialog(null, "Login successfull");


} else {
JOptionPane.showMessageDialog(null, "Username and password
dosn't match!");

54

txtUser.setText("");

55

pwdPass.setText("");

56

txtUser.requestFocus(true);

57
58
59

}
} else if (e.getSource() == btnExit){
JOptionPane.showMessageDialog(null,"Thanks to try my program.

See you..");
60

System.exit(0);

61
62

}
}

63 }

Contoh Program ComboBox di Java


Posted at October 23, 2010

Contoh program Java berikut ini mendemonstrasikan bagaimana membuat inputan combo box
(select box) serta penerapan listener di dalam object Combo Box. Untuk membuat combo box
kita dapat menggunakan class JComboBox. Program akan menampilkan pilihan combo box
berisi nama-nama file gambar dan jika dipilih maka gambar yang bersangkutan akan
ditampilkan.
Berikut ini tampilannya:

Berikut ini program lengkapnya:


01 import java.awt.*;
02 import java.awt.event.*;
03 import javax.swing.*;
04
05

public class ComboBoxTest extends JFrame


{

06
07

private JComboBox cmbImage;

08

private JLabel label;

09
10

private String arrGambar[] = {"Blushing.png", "Cool.png",


"Happy.png","Smile.png","Winking.png"};
private Icon arrIcon[] = { new ImageIcon(arrGambar[0]),

11

new ImageIcon(arrGambar[1]),

12

new ImageIcon(arrGambar[2]),

13

new ImageIcon(arrGambar[3]),

14

new ImageIcon(arrGambar[4])

15

};

16
17

public ComboBoxTest() {

18
19

super ("Mencoba Combo Box");

20

Container container = getContentPane();

21

container.setLayout(new FlowLayout());

22

cmbImage = new JComboBox (arrGambar);

23

cmbImage.setMaximumRowCount(3);

24
25

cmbImage.addItemListener(

26

new ItemListener() {

27

public void itemStateChanged (ItemEvent e) {

28
29

if (e.getStateChange() == ItemEvent.SELECTED)
label.setIcon(arrIcon[cmbImage.getSelectedIndex()])
;

30

31

} //end anonimous inner class

32

);

33
34

container.add(cmbImage);

35

label = new JLabel (arrIcon[0]);

36

container.add(label);

37
38

setSize (350,400);

39

setLocationRelativeTo(null);

40

setVisible(true);

41

42
43

public static void main (String args[]) {

44

ComboBoxTest test = new ComboBoxTest ();

45

test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

46

47
48 } //end of class

Membuat Form Center di Netbeans


1. Setelah membuat form, pilih form yang akan dibuat center
2. Masuk ke panel Properties
3. Pilih code

4. Cari form size policy, pada comboboxnya pilih Generate Resize Code
5. Berikan checklist pada Generate Size dan Generate Center

6. Running form yang telah dibuat center, maka akan terlihat form yang tampil di tengah

Diposkan oleh Arfian Hidayat di 11:03 AM


Email ThisBlogThis!Share to TwitterShare to Facebook
Label: bahasa pemrograman java, belajar java, buat form di java netbeans, java netbeans, Java
SE, membuat form center di java netbeans, tutorial java

Membuat Menu Loading Java


Author: itok toni Al-Rantisi | Posted at: 00:09 | Filed Under: NetBeans |

Tutorial kali ini Cara Membuat Menu Loading dengan menggunakan java yaitu JProgress bar.
dan misalnya akan menampilkan menu login dengan JFrame. pertama yang anda perlu siapkan
adalah sebuat JWindow. kenapa JWindow karena Jwindows tidak mempunyai Menu Exit dan
Minimize
kebetulan pada tutorial kali ini kita menggunakan gridlayout. hehehe, kita buat deklarasi yaitu
terbagi 5
1. jlabel untuk nama aplikasi diatas dan autor
2. jprogressbar untuk menjalankan bar
3. gridlayout untuk mensetting tempat objek
4. timer progres untuk melakukan proses bar
5. integer untuk deklarasi perulangan bar

setelah itu kita perlu mensetting layout agar dapat berjalan baik yaitu dengan cara mendeklarasi
container dan mensetlayout seperti yang diberi kurung gambar dibawah ini.
1. container.add(lblLogo) = tempat menaruh judul
2. container.add(barisProgres) = tempat menaruh menu load
3. container.add(litok) = tempat menaruh autor atau pembuat program
catatan : ketiga item diatas berurutan jadi sesuai dengan selera anda

kemudian menambahkan bar stop dengan ;

dan menambahkan start tepat dibawah kode stop

program diatas masih berada privat tugas logo(); tinggal menampilkan Menu Login JFrame yang
misalnya sudah kita buat misalnya kita membuat nama Jframe dengan nama login maka tulislah
kode berikut

menggunakan new bojek();.setbisible(true); untuk menampilkan form lain dan dispose untuk
memberhentikan jprgress barnya
maka jika kita jalankan akan menjadi seperti gambar dibawah ini

catatan : saya sudah mengedit warna dan textnya ditahuh ditengah

Tampilkan JFrame di Tengah


Author: itok toni Al-Rantisi | Posted at: 12:21 | Filed Under: NetBeans |

Menampilkan JFrom Tepat Di Tengah dengan metode Set location

ketika tadi kita belajar menampilkan jframe menggunakan main maka akan keluar tepat diatas
pojok kiri bagaimana jika kita menentukan lokasi agar jframe muncul tepat ditengah-tengah
monitor kita, tapi sebelum semua kita pelajari maka kita perlu mengetahui penggunaan set
location
buka jframe anda, untuk set location ada dua parameter yang ditawarkan yaitu berupa (x,y)
dimana kita harus mengisi x dan y tersebut untuk dimengerti oleh jframe. liah contoh berikut

kita bisa memasukan code program tepat dibawah initComponets(); seperti gambar diatas, maka
jframe anda akan tampil sesuai settingan lokasi yang anda tentukan
belum cukup disitu, seperti judul kita kita dapat menaruh form kita tepat ditengah-tengah
monitor dengan ukuran berapapun, bagai mana caranya ? kita menggunakan getscreensize
yaitu dengan cara ;
1. import import java.awt.*; tepat dibawah package
2. deklarasi dimensi dengan contoh sebagai berikut

private Dimension UM =
Toolkit.getDefaultToolkit().getScreenSize();
catatan

: UM adalah nama dimensi jadi nama ini

keterangan : masukan kode tepat dibawah public class home


3. set lokasi anda dengan contoh sebagai berikut
setLocation(UM.width/2-getWidth()/2,UM.height/2getHeight()/2);
UM.width dan UM.height adalah ditentukan oleh nama dimensi
sehingga code program menjadi seperti dibawah ini ;

coba anda jalankan program anda maka akan tampil tepat di tengah-tengah monitor apapun
ukurannya. ^_^ have a nice code

Membuat Form Master


Author: itok toni Al-Rantisi | Posted at: 12:15 | Filed Under: NetBeans |

cara membuat form master adalah dengan klik kanan pada package kita dan new file atau melalui
menu File -> New File , Pilih Categories: Swing GUI Forms -> dan File Types: JFrame Form.
Klik Next

jika anda belum memiliki Project Baru maka anda wajib membaca ini maka ada kotak dialog dan
isi dengan nama form baru dan klik finish *.
jika Anda menjalankan program dengan menu Run, Run Main Project maka MainFrame yang
baru kita buat tidak akan tampil. Kecuali kita tambahkan kode method main() milik MainFrame.
Buka file Main.java yang merupakan file pertama yang dijalankan. Dan tambahkan kode seperti
dibawah ini:

untuk catatan : home adalah JFrame yang kita ingin panggil


maka jform master anda akan tampil

* = catatan untuk class nama itu boleh berbeda

Center Form Java Tak Sesulit Yang Dikira

Jam 07.03 wib SMS dari seorang teman


mahasiswa masuk dan tanya tentang bagaimana cara memposisikan FORM dengan
menggunakan
Java
Netbeans.
membuat form berada ditengah menggunakan Java memang tidak semudah saat kita
menggunakan Programming Language lain seperti visual basic yang cukup kita atur properties
form secara GUI. tapi mrmposisikan tengah form dengan Java juga tidak sesulit kita mencari
butir
nasi
diantara
telur
semut
Oc..saya jawab saja SMS itu lewat blog ini karena sekalian nunggu waktunya mandi
Algoritmanya seperti ini :
1. Ambil ukuran layar
2. Tentukan koordinat x dari posisi form nanti dengan cara kurangi lebar layar
dengan lebar form kemudian hasilnya dibagi dengan 2
3. Sama seperti langkah 2 namun untuk sekarang adalah untuk koordinat y dari
form
4. Eksekusi posisi x dan y tadi ke form yang menjadi target korban

Contoh Langkah nya seperti ini :


yang koe pakai unutk mencoba ini adalah JFrame sehingga javax.swing.JFrame tidak koe import
kan. setelah kita buat project dan class/file, masukan script berikut di atas public class.
import java.awt.Dimension;
import java.awt.Toolkit;
script diatas berfungsi untuk memasukan library yang sudah disiapkan oleh java netbeans untuk
kita
gunakan
mengambil
ukuran
layar
dan
form.
Langkah selanjutnya, pindah ke view design klik kanan pada form pilih Events-> window>windowactivated. kalau ada pertanyaan kenapa koq masuk ke event ini, jawabanya karena
script yang kita buat ini diharapkan dieksekusi saat window diaktivkan.
Dimension posisi = Toolkit.getDefaultToolkit().getScreenSize();
int x = (posisi.width this.getWidth())/2;

int y = (posisi.height this.getHeight())/2;


this.setLocation(x,y);
Kalau semua langkah sudah dilakukan, coba cek sekali lagi apakah masih ada langkah yang
belum dilakukan sekaligus cek dibagian kiri script ada tanda error atau warning atau tidak. kalau
ada tanda error, kemungkinan ada script yang kurang atau kelebihan.
Jangan lupa berdoa dulu menurut agama dan keyakinan
semoga bermanfaat

saat akan menjalankannya,oc

Splash Screen di Java Netbeans


Selasa, Februari 09, 2010

Galiarta

3 comments

Untuk membuat splash Screen di Java cukup mudah. Caranya:


1. Buat 1 JFrame Form dengan nama FSplash
2. Copy paste kode di bawah ini:
package crms;
import javax.swing.*;
import java.awt.*;
public class FSplash extends JWindow implements Runnable{
public void run(){
JLabel SplashLabel = new JLabel(new
ImageIcon(getClass().getResource("/gambar/Splash.jpg")));
SplashLabel.setToolTipText("Tampilan Images Splash Screen");
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
getContentPane().add(SplashLabel,BorderLayout.CENTER);
//pane.add(SplashLabel,BorderLayout.CENTER);
//ProgressBar pbar= new JProgressBar(0,15000);

//pane.add(pbar);
setSize(728,387);
setLocation((screen.width - 728)/2,((screen.height-387)/2));
show();
}
}
keterangan:
*ImageIcon(getClass().getResource("/gambar/Splash.jpg"))); adalah lokasi gambar yang ingin
ditampilkan di splash screen ini. Sebelumnya saya telah membuat 1 package dengan nama
gambar yang didalamnya berisi gambar dengan nama Splash.JPG
3. Jangan lupa menambahkan code ini di main:
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
}
FSplash FormSplash = new FSplash();
//--End variable the contains forms
Thread ThFormSplash = new Thread(FormSplash);
//End the form container variable
ThFormSplash.start();
while(!FormSplash.isShowing()){
try{
//Display the FormSplash for 7 seconds
Thread.sleep(3000);
//Thread.sleep(100);
}catch(InterruptedException e){}
}
FormSplash.dispose();
formlogin formlogin= new formlogin();
formlogin.setVisible(true);
}
Ket: FormLogin adlah form yang ingin ditampilkan jika splash screen telah selesai di load.

hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
hhhhhhhhhhhhhhhhhhhhh

Anda mungkin juga menyukai