Java'da JTree Kullanımı
Swing arayüz kütüphanesine ait JTree sınıfı ağaç şeklinde verileri göstermeye yarıyor. Bunun için MVC'ye uygun olarak TreeModel kullanılıyor.
TreeModel ve TreeNodeModel Java'nın Swing kütüphanesi MVC (Model-View-Controller / Model - Görünüş - Denetleyici) desenine uygun olarak arayüzle veriyi ayrı bir biçimde ele alır. Ağaç tipinde bir verinin her düğümü TreeNode arayüzüyle, ağacın kendisi de TreeModel arayüzüyle tanımlıdır. Programcı isterse bunlar kendisi de gerçekleştirebilir ancak hazır gerçekleştirilmiş data nesnesi olarak DefaultMutableTreeNode ve DefaultTreeModel sınıfları bulunmaktadır. Ağaç üzerinde bir düğüm olluşturmak için DefaultMutableTreeNode node=new DefaultMutableTreeNode("Düğüm Adı"); biçiminde bir kod parçası yazılır. En tepedeki düğüm (kök) ve en uçtaki düğüm (yaprak) düğümleri de aynı biçimde tanımlanır. Bir düğimin altına düğüm eklemek için DefaultMutableTreeNode node=new DefaultMutableTreeNode("Düğüm Adı"); şeklinde bir kod parçası yazılır. Bir ağaç modeli oluşturmak için en tepedeki (kök) düğümü vermek yeterlidir : DefaultTreeModel model=new DefaultTreeModel(root); Bu modeli JTree nesnesine parametre olarak aktarılırsa JTree tree=new JTree(model); bir açaç nesnesi kullanıma hazır olur. Bir şirketteki organizasyon şemasını gösteren bir açaç örneği : import javax.swing.*; public class TreeTest extends JFrame{ DefaultMutableTreeNode general= general.add(marketing); DefaultTreeModel model=new DefaultTreeModel(general); getContentPane().add(new JScrollPane(tree)); Burada önce düğüm nesneleri oluşturulmakta, daha sonra alt düğümler üst düğüme eklenmektedir. Kök düğümden oluşturulan model ağaç nesnesine verilmekte ve bu nesne pencereye eklenmektedir.
DefaultMutableTreeNode subnode=new DefaultMutableTreeNode("Alt Düğüm Adı");
node.add(subnode);
import javax.swing.tree.*;
import java.awt.*;
public TreeTest(){
new DefaultMutableTreeNode("Genel Müdürlük");
DefaultMutableTreeNode marketing=
new DefaultMutableTreeNode("Pazarlama Bölümü");
DefaultMutableTreeNode aliyilmaz=
new DefaultMutableTreeNode("Ali Yılmaz");
DefaultMutableTreeNode alisatar=
new DefaultMutableTreeNode("Ali Satar");
DefaultMutableTreeNode production=
new DefaultMutableTreeNode("Üretim");
DefaultMutableTreeNode velikaya=
new DefaultMutableTreeNode("Veli Kaya");
DefaultMutableTreeNode metinselim=
new DefaultMutableTreeNode("Metin Selim");
general.add(production);
marketing.add(aliyilmaz);
mark.add(alisatar);
production.add(velikaya);
production.add(metinselim);
JTree tree=new JTree(model);
}
public static void main(String[] args){
TreeTest test=new TreeTest();
test.setBounds(100,100,300,300);
test.setVisible(true);
}
}
Kaynak www.godoro.com/Portal/Content/Article/ArticleViewPage.aspx