Nah,, sekarang kita akan membahas tentang Swing. GUI Toolkit yang satu ini jauh lebih dikenal daripada GUI Toolkit yang lainnya bagi pemula dalam pemograman GUI Java, karena banyaknya tutorial yang bisa temukan 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).
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.
Berikut syntax nya untuk program di atas
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 comments:
Posting Komentar