Rabu, 10 Desember 2008

Memodifikasi Child pada JTree menggunakan PopUp, Ternyata gampang juga ya!!!!

Membuat Jtree pada Java memang tidak semudah membuat Tree pada Delphi atau Visual Basic. Tapi jangan salah, JTree mempunyai kelebihan yang tersembunyi. Selain dapat digunakan sebagai folder explorer, JTree dapat digunakan untuk keperluan lainnya. Misalnya menampilkan user aktif, explore file, ataupun kepentingan lainnya sesuai dengan aplikasi yang kita buat.

Sebelum mulai download SoerceCodenya disini.
Untuk membuat JTree sangat mudah, konstruktor defaultnya adalah:

treeInduk=new DefaultMutableTreeNode("Node Induk", true);
tree1=new DefaultMutableTreeNode("Node ke 1");
tree2=new DefaultMutableTreeNode("Node ke 2");

tree3=new DefaultMutableTreeNode("Node ke 2");

treeInduk.add(tree1);
tree2.add(tree3);
treeInduk.add(tree2);


konstruktor diatas dapat kita muat kedalam sebuah Container. Contoh:
JScrollPane pane=new JScrollPane((JTree) treeInduk);

Kode diatas akan membuat sebuah JPanel dengan Jtree didalamnya. Lihat Gambar



Sekarang, untuk menambahkan Even pada JTree kita akan menggunakan mouse listener sebagai berikut.

treeInduk.addMouseListener(new MouseAdapter(){
public void mouseReleased(MouseEvent me){
if(me.isPopupTrigger()){
popUp.show((javax.swing.JComponent) me.getSource(), me.getX(),me.getY());

}
}
});


Popup yang dimunculkan pada Even diatas, sebelumnya dibangun dengan konstruktor sebagai berikut:

popUp=new JPopupMenu();
menu=new JMenuItem("BlackOnta PopUp Menu");

popUp.add(menu);
popUp=new JPopupMenu();
menu=new JMenuItem("Tambah Child Tree");
menu.addActionListener(this);
menu.setActionCommand("tambah");
popUp.add(menu);

menu=new JMenuItem("Hapus Child Node");

menu.addActionListener(this);
menu.setActionCommand("hapus");
popUp.add(menu);

popUp.setOpaque(true);
popUp.setLightWeightPopupEnabled(true);


Nah Pusing ya????? Tenang tenang, siapkan dulu secangkir kopi trus tarik nafas yang dalam.

Sekarang kita lanjutkan.

Trus Black, gimana modifikasi Childnya??????
Tenang tenang, untuk modifikasi Child (tambah/hapus Child), bisa digunakan perintah berikut:
Tambah Child:
treeInduk.add(tree2);



Hasil


Hapus Child:
treeInduk.remove(tree2);



Hasil




Eit tunggu dulu belum selesai, untuk dapat mempilkan perubahan, JTree harus di buat Ulang (Re-Paint). Ada banyak cara sih tapi saya membaca dalam sebuah artikel cara mudah untuk me-repain JTree. Neeh:
((javax.swing.tree.DefaultTreeModel)this.getModel()).nodeStructureChanged((javax.swing.tree.TreeNode)tree1);

Source code lengkapnya download aja ya disini, soalnya kalo di tulis disini kepanjangan. Ok Boss Moga Bermanfaat. Kalo ada pertanyaan Silahklan Langsung tanyakan, dengan ngisi komentar.

Digg Google Bookmarks reddit Mixx StumbleUpon Technorati Yahoo! Buzz DesignFloat Delicious BlinkList Furl

9 komentar: on "Memodifikasi Child pada JTree menggunakan PopUp, Ternyata gampang juga ya!!!!"

mawan mengatakan...

mau tanya, kalo ngisi jTree dan juga listnya yang generate codenya melalui GUI Netbeans. bingung ngedit isi di treenya atau nambah isi listnya. kalo artikel yang saya baca kebanyakan dengan membuat objeck sendiri ( mengetik code2 pada saar buat object tree/list. thx bantuanya

Black Onta mengatakan...

Gampang boz, coba tambahkan tree di frame, trus klik tree nya, supaya pasti, klik dulu diluar kemudian klik kembali treenya, kemudian di properties klik modelnya, mudah2han membantu

Nixon mengatakan...

Brow ge mau nanya,klo menampilkan suatu file yang berhubungan pada JTree bagaimana??? Seperti pada situs Youtube, jika kita memilih suatu file maka ia merekomendasikan file yang hampir sama/berhubungan. Jika kita memilih kartun, maka file child yang ditampilkan pun kartun.
dalam hal ini yang ingin saya tanyakan adalah file Pdf
Thx Brow

Black Onta mengatakan...

Buat aja method search, trus hasil pencariannya di tampilin di JTree pake Method

DefaultMutableTreeNode tree=new DefaultMutableTreeNode("File ke 1");

treeInduk.add(tree);

dimana tree adalah hasil pencarian

Nixon mengatakan...

Gw mau nanya lagi neh, bagaimana cara membuat link pada text yang ditampilkan pada JTextPane.
contohnya saya mempunyai file/konteks yang ditampilkan dari database menuju JTextPane, bagaimana saya membuat
file tersebut mengacu dan membuat link serta menampilkan file tersebut. Contohnya saya mempunyai sebuah file dari database yang memiliki Field "Author,Title dan Konteks "
Jika file yang sekarang saya baca mempunyai kata-kata yang sesuai atau mengacu maka text tersebut yang ada pada database maka text akan berubah menjadi 'Link' serta dapat menampilkan file
tersebut dari database..... Istilahnya menampilkan child serta parent pada text
Thx atas Bantuannya Bro,klo bisa tolong contoh codingnya y Brow.

Black Onta mengatakan...

Kalau kontent yang seperti itu, sebaiknya jangan gunakan JTextPane, tapi coba gunakan JEditorPane, Keterangan lebih lanjut tentang penggunaan JEditorPane bisa dilihat disini Disini. Semoga Membantu

heru mengatakan...

mas, kalo bikin tree seperti di netbeans ide yg navigatornya itu,
kan nggak ada parent rootnya...
itu gimana ya?

Black Onta mengatakan...

Buatnya sama ajah bro, nah bikin bikin aja node2nya misal:
tree1=new DefaultMutableTreeNode("Node ke 1");
tree2=new DefaultMutableTreeNode("Node ke 2");
tree3=new DefaultMutableTreeNode("Node ke 2");

trus node2 diatas langsuing di addkan ke Jtree, jadi node(tree2) diatas gak bakalan punya node induk

Rio mengatakan...

gan klo misalkan itu tree di clik trus manggil class yang lain gimana?

cth: node2 di click2x trus muncul JOptionPane.. gimana? muhun pencerahannya :D