DropDownButton di Java Swing

Wuuuuuuuuuuuah udah lama ga ngisi blog maklum sekarang udah ga kerja di warnet lagi :( , berhubung sekarang sudah dapat akses internet and udah dapat kerja lagi ditempat “idaman” :) Sekarang kegiatan nge-blogging bakalan jalan lancar lagi :)

Untuk teman-teman yang senang bermain di Java Swing, mungkin pernah punya keinginan untuk membuat atau mencari sebuah button yang mempunyai karakteristik seperti button milik NetBeans dibawah ini :
NB_DropDownBtn
Click to View Large Image


Jika teman-teman mempunyai keinginan tersebut tetapi belum tahu bagaimana caranya atau belum menemukannya, mungkin tulisan sederhana saya ini bisa sedikit membantu permasalahan teman-teman :) Komponen ini saya beri nama MDropDownButton (eh bener ga ya namanya dropdown button ? malu ) dan tampilan dari MDropDownButton tersebut adalah seperti ini :
MDropDownBtn
Click to View Large Image

MDropDownButton diatas merupakan subclass dari JToggleButton (supaya tampilan button-nya tidak jauh berbeda di semua LAF yang sudah di support oleh Java Swing) dan menggunakan JPopupMenu untuk menu drop down-nya, dan jika teman-teman ingin menggunakan komponen tersebut di project-nya silahkan kopi paste kode MDropDownButton.java dibawah ini :

55fc464fd3b998036ae7ceb2e9a7ad44000

Penjelasan kode diatas adalah sebagai berikut :

  1. Agar MDropDownButton ini mempunyai efek selected ketika menampilkan menu drop down-nya, maka membuat subclass dari JToggleButton merupakan pilihan yang cocok dan ini bisa dilihat pada baris ke 48. Mengapa menggunakan JToggleButton ? Karena kalau kita menggunakan JButton, ketika user menekan button tersebut maka efek selected-nya hanya tampil sekejap.
  2. Pada baris 51-55 kita mempersiapkan beberapa komponen yang kita perlukan untuk tampilan MDropDownButton tersebut, salah satunya yaitu JPopupMenu.
  3. Sedangkan pada baris 57-78 ini berfungsi agar class MDropDownButton ini dapat digunakan tanpa melalui IDE, maksud-nya yaitu agar kita dapat langsung menambahkan MDropDownButton ini langsung dengan cara sebagai berikut :

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    ....
    JPopupMenu popUpMenu = new JPopupMenu();
    ImageIcon iconKu = new ImageIcon("icon.gif");
    popUpMenu.add(new JMenuItem("Menu Item 1"));
    popupMenu.add(new JMenuItem("Menu Item 2"));
     
    // Kalau ingin Button-nya tidak ada text-nya + no icon
    MDropDownButton dropButton = new MDropDownButton(popupMenu);
     
    // Kalau penggunaan spt ini, sama saja kayak JButton biasa :D
    MDropDownButton dropButton = new MDropDownButton("Print", iconKu);
     
    // Pakai Icon button , text dan Popupmenu
    MDropDownButton dropButton = new MDropDownButton("Print", iconKu,
    	popupMenu);
  4. Pada baris 80-112 ini berfungsi agar button ini dapat di set enabled / disabled :D
  5. Pada baris 115 ini berfungsi untuk menambahkan JPopupMenu yang akan ditampilkan, method ini meg-overide dari JToggleButton.
  6. Pada baris 131-164 ini adalah method yang berfungsi untuk mengatur penempatan 2 buah JLabel saja, selain itu pada method ini juga dipasang event MouseListener pada lblIcon agar ketika pengguna menekan lblIcon tersebut (icon expand-nya) maka popup menu akan ditampilkan :)
  7. Sedangkan pada method pada baris 166-184 ini befungsi untuk menampilkan popupMenu yang telah ditambahkan dan menampilkan-nya pada posisi tepat dibawah lokasi MDropDownButton ditampilkan dilayar.
  8. Sedangkan pada baris 186-189 ini tidak digunakan, karena yang dibutuhkan cuman method mouseClicked ajah :)

Asyik bukan bisa bikin button sendiri, button mau-mau kita :) Saran dan kritik dari teman-teman saya tunggu juga loh, ayo rame-rame bikin custom component di Java Swing sapa tahu nanti dilirik ama SwingX terus dimasukin ke API-nya cool kan :P (halah ngimpi mode ON)

  • Share/Bookmark
Print This Post

18 Responses to “DropDownButton di Java Swing”

  1. [...] Kode Yang Ingin Di Jadikan Sebagai Custom Komponen Pada posting saya yang kemarin, saya pernah menulis bagaimana cara membuat sebuah DropDownButton pada Java Swing dan class [...]

  2. piano sonatas…

    [...] Good piano performance. Thanks heaps for this!… if anyone else has anything it would be much appreciated. Great website http://www.en.Grand-Pianos.org Enjoy!…

  3. mbahsomo says:

    Bentar mas nanti saya kopi errornya ;;)

  4. mbahsomo 5:58:

    Mas saya mau tanya masalah Ireport, kemaren saya udah buat program sederhana dengan menggunakan ibatis trus, pinginnya reportnya pake ireport, eh coba2 wah udah tak rubah datanya pake List kok masih ada yang error, tolong di jelasin yang bennar setingannya gimana, sebelumnya saya ucaplan terimakasih

    Btw ada errornya ga mas ?? Klo ada sekalian di copy paste ajah disini :)

  5. mbahsomo says:

    Mas saya mau tanya masalah Ireport, kemaren saya udah buat program sederhana dengan menggunakan ibatis trus, pinginnya reportnya pake ireport, eh coba2 wah udah tak rubah datanya pake List kok masih ada yang error, tolong di jelasin yang bennar setingannya gimana, sebelumnya saya ucaplan terimakasih

  6. dodo_dudulz says:

    Wah, setelah aku coba ternyata bagus ya mas..
    *blm pernah terpikirkan selama ini* :-) thx..

Leave a Reply

[+] adsenseid emoticons by Martinus Ady H. Modified from nartzco source code.