· 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 GUI Toolkit ini lebih banyak dikenal dikarenakan dukungan tutorialnya yang cukup banyak bertebaran di Internet, dan juga merupakan standart dari Java yang mana kita tidak perlu melakukan penambahan library lagi kalau ingin menggunakan GUI Toolkit ini. Selain itu, terdapat 2 IDE besar yang menggunakan GUI Toolkit Java Swing yaitu NetBeans IDE(OpenSource) dan IntelliJ IDEA (mempunyai versi OpenSource dan Komersial)
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