guide :
Long id ;
String name;
Long groupid;
groupguide:
Long id;
String name;
veri tabanımıza verileri yükleyelim;
INSERT INTO `groupguide` (`id`, `name`) VALUES(1, 'group1'),(2, 'group2');
INSERT INTO `guide` (`id`, `name`, `groupid`) VALUES (1, 'Name1', 1), (2, 'Name2', 2);
Guide için bir class yazalım,
public class TreeSampleAction {
List
private Long id;
private String name;
DataBaseConnection conn= new DataBaseConnection();
// Bunları set ve get fonksiyonlarını yazalım
/**
*
* @param id
* @return
* veri tabanından çektiğimiz, gruba göre guide listesi döndürür.
*
*/
public List
try {
TreeSampleAction treeSampleAction = null;
treeSampleActionList = new ArrayList();
String str = "SELECT * FROM guide where groupid=" + id;
ResultSet rs = null;
rs = conn.get(str);
if (rs != null) {
while (rs.next()) {
treeSampleAction = new TreeSampleAction();
treeSampleAction.setId(rs.getLong("id"));
treeSampleAction.setName(rs.getString("name"));
getTreeSampleActionList().add(treeSampleAction);
}
}
rs.close();
conn.connClose();
} catch (SQLException ex) {
Logger.getLogger(TreeSampleAction.class.getName()).log(Level.SEVERE, null, ex);
}
return this.getTreeSampleActionList();
}
}
Group için bir class yazalım,
public class TreeSampleGroupAction {
List
DataBaseConnection conn= new DataBaseConnection();
private Long id;
private String name;
// Bunları set ve get fonksiyonlarını yazalım
/**
*
* @param id
* @return
* veri tabanından çektiğimiz grub listesi döndürür.
*
*/
public List
try {
TreeSampleGroupAction treeSampleGroupAction = null;
treeSampleActionGroupList = new ArrayList();
String str = "SELECT * FROM groupguide";
ResultSet rs = null;
rs = conn.get(str);
if (rs != null) {
while (rs.next()) {
treeSampleGroupAction = new TreeSampleGroupAction();
treeSampleGroupAction.setId(rs.getLong("id"));
treeSampleGroupAction.setName(rs.getString("name"));
treeSampleActionGroupList.add(treeSampleGroupAction);
}
}
rs.close();
conn.connClose();
} catch (SQLException ex) {
Logger.getLogger(TreeSampleGroupAction.class.getName()).log(Level.SEVERE, null, ex);
}
return this.treeSampleActionGroupList;
}
}
JTree'i gösterebileceğimiz bir Frame yaratalım,
public class TreeSampleFrame extends javax.swing.JFrame {
/**
* Kullandığımız Değişkenler
*/
Vector vect;
Vector rightVect;
DefaultMutableTreeNode rootNode;
DefaultMutableTreeNode childNode, grandchildNode;
DefaultTreeModel treeModel;
TreeSampleAction treeSampleAction;
List
TreeSampleGroupAction treeSampleGroupAction;
List
/** TreeSampleFrame Türünde Yeni Bir Form Oluşturalım */
public TreeSampleFrame() {
initComponents();
// Tree 'i oluşturup verilerimizi set lemek için kullandığımız metod
SetTreeValues();
}
/**
* JTree ye verilermizi setlediğimiz metod
*/
public void SetTreeValues() {
//grupları tutacağımız liste tanımlayalım
List
// guideları tutacağımız liste tanımlayalım
List
//group için bir nesne tanımlayalım
TreeSampleGroupAction treeSampleGroupAction = new TreeSampleGroupAction();
// guide için bir nesne tanımlayalım
TreeSampleAction treeSampleAction = new TreeSampleAction();
Vector vect = new Vector(); // child ları ekleyeceğimiz Vector
//Node ları tutacağımız bir root Node tanımlayalım
DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode("Tree Sample");
// veri tabanında sakladığımız grup verilerini tanımladığımız grup listesine ekleyelim
treeSampleGroupActionList = treeSampleGroupAction.getData();
for (TreeSampleGroupAction treeGroup : treeSampleGroupActionList) {
//her bir grubu bir node olarak tanımlayalım
DefaultMutableTreeNode node = new DefaultMutableTreeNode(treeGroup);
// her bir grubun üyelerini yani guide listesini veri tabanından çekelim
treeSampleActionList = treeSampleAction.getDataById(treeGroup.getId());
if (treeSampleActionList.size() != 0) {
// her bir guide'ı vector' e ekleyelim
for (TreeSampleAction branch : treeSampleActionList) {
vect.add(branch);
}
// her bir vector u Node lara ekleyelim yani grubun altına guide ları ekleyelim
JTree.DynamicUtilTreeNode.createChildren(node, vect); //this is the hard one
// oluşturulan node 'u Root Node' a ekleyelim
rootNode.add(node);
}
//vector'ü ve Guide listesini temizleyelim
vect.removeAllElements();
treeSampleActionList.clear();
}
// Oluşturduğumuz Root Node ile TreeModel'i oluşturalım.
treeModel = new DefaultTreeModel(rootNode);
// JTree' e treeModel i setleyelim
jTree.setModel(treeModel);
}
Frame 'i run ettiğimizde karşımıza aşağıdaki ekran çıkacaktır.
burada eklediğimiz node ve child lar da görülecek isimler istediğimiz formatta olmayabilir bunun için toString metodu tanımlamamız gerekiyor. Bu metod u oluşturduğumuz “TreeSampleGroupAction” ve “TreeSampleAction” class larımıza ekleyelim.
@Override
public String toString() {
return this.getName();
}
Frame'i tekrar run ettiğimizde,
Hiç yorum yok:
Yorum Gönder