· Java Swing – SUN Microsystem -> Oracle
Nah ini dia GUI Toolkit yang mungkin paling banyak dikenal oleh teman-teman yang baru belajar Pemrograman GUI di Java dibandingkan dengan GUI Toolkit yang lain


Dibandingkan dengan pendahulu-nya yaitu AWT (Abstract Window Toolkit), Swing mempunyai 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
Sayang-nya, jika kita menginginkan tampilan GUI yangnative (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 :
·
public class SwingForm extends javax.swing.JFrame { /** Creates new form SwingForm */ public SwingForm() { initComponents(); } @SuppressWarnings("unchecked") // private void initComponents() { ..... $0A }// 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) { $26nbsp; 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); &nbrp; } 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:
Posting Komentar