Java Swing – SUN Microsystem -> Oracle

19.38 viia 0 Comments

GUI Toolkit yang satu ini yang paling populer dibandingin sama GUI Toolkit yang lain ,lagi pula tutorial yang mudah untuk kita dapatkan khususnya di Internet.

Mengapa si kita tidak menggunakan AWT?
lebih banyak komponen pendukung untuk membangun sebuah aplikasi yang lengkap untuk keperluan desktop. Selain didukung dengan banyak-nya komponen, Swing ini benar-benar murni 100 % ditulis dengan bahasa pemrograman Java tanpa adanya sebuah wrapper untuk memanggil rutin-rutin native code via JNI (Java Native Interface). Seluruh komponen yang terdapat pada Swing, semuanya murni digambar sendiri menggunakan API (Application Programming Interface) 2D untuk memanggil rutin-rutin dasar penggambaran komponen-nya. Nah dengan model seperti ini, memungkinkan sekali aplikasi yang dibangun menggunakan Swing tampak sama persis di berbagai macam Sistem Operasi.

Selain itu, Swing juga mempunyai kemampuan untuk berganti-ganti tampilan menggunakan LAF (Look And Feel) atau themes :D Sayang-nya, jika kita menginginkan tampilan GUI yang native(tampilan-nya sama seperti aplikasi-aplikasi lain pada sistem operasi target) Swing seperti-nya masih terasa kurang smooth terutama dukungan pada font rendering-nya :( . Untuk teman-teman yang penasaran bagaimana sih sebenarnya tampilan dari GUI Toolkit Swing ini ? Dibawah ini adalah screenshot Swing standart yang bisa kita gunakan tanpa perlu menambahkan library lagi :)

LAF Metal LAF System(GTK)

LAF Nimbus LAF Motif

Sedangkan untuk source code-nya kurang lebih seperti dibawah ini :

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
47
48
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
76
77
78
79
80
81
82
83
84
85
public class SwingForm extends javax.swing.JFrame {
 
/** Creates new form SwingForm */
public SwingForm() {
initComponents();
}
 
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
.....
}// </editor-fold>
 
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
 
private void resetLaf() {
SwingUtilities.updateComponentTreeUI(this);
}
 
private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
try {
UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
resetLaf();
} catch (ClassNotFoundException ex) {
Logger.getLogger(SwingForm.class.getName()).log(Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
Logger.getLogger(SwingForm.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
Logger.getLogger(SwingForm.class.getName()).log(Level.SEVERE, null, ex);
} catch (UnsupportedLookAndFeelException ex) {
Logger.getLogger(SwingForm.class.getName()).log(Level.SEVERE, null, ex);
}
}
 
private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
resetLaf();
} catch (ClassNotFoundException ex) {
Logger.getLogger(SwingForm.class.getName()).log(Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
Logger.getLogger(SwingForm.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
Logger.getLogger(SwingForm.class.getName()).log(Level.SEVERE, null, ex);
} catch (UnsupportedLookAndFeelException ex) {
Logger.getLogger(SwingForm.class.getName()).log(Level.SEVERE, null, ex);
}
}
 
private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
resetLaf();
} catch (ClassNotFoundException ex) {
Logger.getLogger(SwingForm.class.getName()).log(Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
Logger.getLogger(SwingForm.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
Logger.getLogger(SwingForm.class.getName()).log(Level.SEVERE, null, ex);
} catch (UnsupportedLookAndFeelException ex) {
Logger.getLogger(SwingForm.class.getName()).log(Level.SEVERE, null, ex);
}
}
 
private void jMenuItem4ActionPerformed(java.awt.event.ActionEvent evt) {
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");
resetLaf();
} catch (ClassNotFoundException ex) {
Logger.getLogger(SwingForm.class.getName()).log(Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
Logger.getLogger(SwingForm.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
Logger.getLogger(SwingForm.class.getName()).log(Level.SEVERE, null, ex);
} catch (UnsupportedLookAndFeelException ex) {
Logger.getLogger(SwingForm.class.getName()).log(Level.SEVERE, null, ex);
}
}
 
.....
.....
}








0 komentar: