Pengenalan SwingX


Akhirnya liburan semester tiba juga.. Tidak terasa sudah menjadi seorang dosen untuk satu semester.. Mendidik mahasiswa memang tidak mudah, sulit untuk membuat mereka aktif meneliti dan terus mencari pengetahuan dari berbagai sumber. Banyak yang hanya ingin meraih nilai tertinggi saja, sampai melupakan tujuan mereka belajar. Padahal dunia IT adalah dunia yang luas dan terus berkembang, sehingga tidak mungkin hanya mengandalkan orang lain untuk bisa tetap mengikuti perkembangan. Lagipula, waktu yang terbatas selama satu semester, membuat aku tidak sempat mengajarkan topik-topik tambahan.  Misalnya, di pemograman Java, aku mengajarkan Swing. Jika bosan dengan Swing, atau menginginkan fitur-fitur tambahan pada Swing, seorang programmer Java bisa menggunakan SwingX, salah satu ‘turunan‘ dari Swing yang dapat di-download terpisah di http://www.swinglabs.org/

Apa kelebihan SwingX?  SwingX menawarkan fitur-fitur ekstra yang tidak ditemui di Swing secara siap jadi. Sebagai contoh, ada yang disebut sebagai Highlighter, untuk memberi highlight (bisa berupa warna background berbeda dan sebagainya) pada sel tertentu di JXTable, JXList, JXTree, dan sebagainya.  Komponen yang diawali JX kebanyakan adalah turunan dari komponen Swing standar, misalnya JXTable adalah turunan dari JTable.  Demikian juga, JXComboBox adalah turunan dari JComboBoxJXComboBox sudah mendukung fitur highlight dengan adanya fungsi addHighlighter().  Jika kita ingin menampilkan nilai dibawah 50 dengan background merah di JXComboBox, kita dapat menggunakan ColorHighlighter, salah satu implementasi dari Highlighter, seperti pada contoh berikut ini:

import java.awt.Color;
import java.awt.Component;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import org.jdesktop.swingx.JXComboBox;
import org.jdesktop.swingx.decorator.ColorHighlighter;
import org.jdesktop.swingx.decorator.ComponentAdapter;
import org.jdesktop.swingx.decorator.HighlightPredicate;

public class App extends JFrame
{    
    private JXComboBox cboTest;

    public App() {
        super("Latihan SwingX");

        cboTest = new JXComboBox(new Integer[] {100, 50, 30, 80, 70, 45, 50, 60});    
        ColorHighlighter colorHighlight = new ColorHighlighter();
        colorHighlight.setBackground(Color.RED);
        colorHighlight.setForeground(Color.WHITE);        
        colorHighlight.setHighlightPredicate(new HighlightPredicate() {

            @Override
            public boolean isHighlighted(Component renderer, ComponentAdapter adapter) {
                if ((Integer)adapter.getValue() < 50) {
                    return true;
                } else {
                    return false;
                }
            }

        });

        cboTest.addHighlighter(colorHighlight);

        setLayout(new FlowLayout());        
        add(cboTest);
        add(new JButton("TEST"));

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(500,500);
        setVisible(true);
    }

    public static void main( String[] args )
    {
        new App();
    }
}

Hasil dari tampilan program di atas akan terlihat seperti:

ComboBox dengan ColorHighlighter

ComboBox dengan ColorHighlighter

Pada program di atas, fungsi setHighlightPredicate() di ColorHighlighter akan memeriksa apakah suatu nilai perlu di-highlight atau tidak (berdasarkan nilai kembalian true atau false).

Selain itu, SwingX juga menawarkan komponen baru, seperti JXDatePicker. Ini adalah contoh komponen yang sering dibutuhkan oleh aplikasi, tetapi tidak disediakan oleh Swing secara langsung.  Berikut ini adalah contoh tampilan JXDatePicker:

Contoh Tampilan JXDatePicker

Tampilan JXDatePicker

SwingX juga memiliki kotak dialog siap pakai, seperti JXTipOfTheDay, yang umum dipakai untuk menampilkan tips di program.  Berikut ini adalah contoh potongan kode program yang mempergunakan JXTipOfTheDay:

tipOfTheDay = new JXTipOfTheDay();
tipOfTheDay.setModel(new TipOfTheDayModel() {

    private Tip[] tips = {
       new Tip() {

           @Override
           public String getTipName() {
               return "Tips 1";
           }

           @Override
           public Object getTip() {
               return "Tahukah Anda SwingX menyediakan komponen siap jadi?";
           }
       },

       new Tip() {

          @Override
          public String getTipName() {
               return "Tip 2";
          }

          @Override
          public Object getTip() {
               return "Anda bisa membuat table dengan highlighter di SwingX";
          }
       } 
   };     

   @Override
   public int getTipCount() {
       return tips.length;
   }

   @Override
   public Tip getTipAt(int index) {                                
       return tips[index];
   }
});

tipOfTheDay.setCurrentTip(1);        
tipOfTheDay.showDialog(this);

Contoh tampilan program di atas akan terlihat seperti:

Contoh Tampilan JXTipOfTheDay

Tampilan JXTipOfTheDay

Perihal Solid Snake
I'm nothing...

3 Responses to Pengenalan SwingX

  1. viny mengatakan:

    program yg ini:

    import java.awt.Color;
    import java.awt.Component;
    import java.awt.FlowLayout;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import org.jdesktop.swingx.JXComboBox;
    import org.jdesktop.swingx.decorator.ColorHighlighter;
    import org.jdesktop.swingx.decorator.ComponentAdapter;
    import org.jdesktop.swingx.decorator.HighlightPredicate;

    public class App extends JFrame
    {
    private JXComboBox cboTest;

    public App() {
    super(“Latihan SwingX”);

    cboTest = new JXComboBox(new Integer[] {100, 50, 30, 80, 70, 45, 50, 60});
    ColorHighlighter colorHighlight = new ColorHighlighter();
    colorHighlight.setBackground(Color.RED);
    colorHighlight.setForeground(Color.WHITE);
    colorHighlight.setHighlightPredicate(new HighlightPredicate() {

    @Override
    public boolean isHighlighted(Component renderer, ComponentAdapter adapter) {
    if ((Integer)adapter.getValue() < 50) {
    return true;
    } else {
    return false;
    }
    }

    });

    cboTest.addHighlighter(colorHighlight);

    setLayout(new FlowLayout());
    add(cboTest);
    add(new JButton("TEST"));

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setSize(500,500);
    setVisible(true);
    }

    public static void main( String[] args )
    {
    new App();
    }
    }

    d tempat aku kok g running yah? errornya 9..
    error di coding no.6, 7, 8, 9, 18, 19, 22

    kenapa yah? salah d titik, trs d JxComboBox sama ColorHighlighter
    pla reply..
    aku penasaran bgt ky gmn output yg d tampilinnya..

    • solidsnake99 mengatakan:

      Pastikan dulu Viny telah menyertakan JAR SwingX di IDE yang Viny pakai.. JAR-nya dapat di download di http://swinglabs.org/downloads.jsp
      Cara menyertakan JAR ke classpath berbeda-beda tergantung IDE, namun secara umum, klik kanan nama project, pilih “Properties”.. kemudian pilih tab seperti “Class Libraries” (dan sejenisnya tergantung IDE), lalu pilih “Add JAR”, kemudian browse lokasi file JAR yang baru di-download tadi.

  2. bautinja mengatakan:

    makasih udh menambah wawasan

Apa komentar Anda?

Please log in using one of these methods to post your comment:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: