/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package grilvcu.view;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
/**
*
* @author I'msimple
*/
public class DemoJTree {
public DemoJTree
(String text
) {
initContainer();
initComponent();
// setAction();
frame.setTitle(text);
frame.setVisible(true);
}
private void setAction() {
@Override
//getLastSelectedPathComponent chính la node tren giao dien duoc chon
Object obt
= tree.
getLastSelectedPathComponent();
JOptionPane.
showMessageDialog(null,node.
getUserObject());
}
@Override
}
@Override
}
@Override
}
@Override
}
});
}
private void initContainer() {
frame.
setDefaultCloseOperation(JFrame.
EXIT_ON_CLOSE); frame.setSize(400,600);
frame.setLocationRelativeTo(null);
}
private void initComponent() {
//Tao jtree
jpnTree.
setPreferredSize(new Dimension(300,
0));
//Tao danh sach cho jtree bang TreeNode , treeNode cha la root
//Tao treenote con cua root
root.add(phtgv);
root.add(phkd);
root.add(phkt);
root.add(phctsv);
//Tao cac nhan vien trong phong
phtgv.add(nv00);
tree.expandRow(0);
//Chung ta them jtree vao mot jsplit
jsplit.setOneTouchExpandable(true);
}
public static void main
(String[] args
) { new DemoJTree("JTREE");
}
}
LyoKICogVG8gY2hhbmdlIHRoaXMgbGljZW5zZSBoZWFkZXIsIGNob29zZSBMaWNlbnNlIEhlYWRlcnMgaW4gUHJvamVjdCBQcm9wZXJ0aWVzLgogKiBUbyBjaGFuZ2UgdGhpcyB0ZW1wbGF0ZSBmaWxlLCBjaG9vc2UgVG9vbHMgfCBUZW1wbGF0ZXMKICogYW5kIG9wZW4gdGhlIHRlbXBsYXRlIGluIHRoZSBlZGl0b3IuCiAqLwpwYWNrYWdlIGdyaWx2Y3UudmlldzsKCmltcG9ydCBqYXZhLmF3dC5Cb3JkZXJMYXlvdXQ7CmltcG9ydCBqYXZhLmF3dC5EaW1lbnNpb247CmltcG9ydCBqYXZhLmF3dC5ldmVudC5Nb3VzZUV2ZW50OwppbXBvcnQgamF2YS5hd3QuZXZlbnQuTW91c2VMaXN0ZW5lcjsKaW1wb3J0IGphdmF4LnN3aW5nLkpGcmFtZTsKaW1wb3J0IGphdmF4LnN3aW5nLkpPcHRpb25QYW5lOwppbXBvcnQgamF2YXguc3dpbmcuSlBhbmVsOwppbXBvcnQgamF2YXguc3dpbmcuSlNjcm9sbFBhbmU7CmltcG9ydCBqYXZheC5zd2luZy5KU3BsaXRQYW5lOwppbXBvcnQgamF2YXguc3dpbmcuSlRyZWU7CmltcG9ydCBqYXZheC5zd2luZy50cmVlLkRlZmF1bHRNdXRhYmxlVHJlZU5vZGU7CgovKioKICoKICogQGF1dGhvciBJJ21zaW1wbGUKICovCnB1YmxpYyBjbGFzcyBEZW1vSlRyZWUgewogICAgCiAgICBKRnJhbWUgZnJhbWU7CiAgICBKUGFuZWwganBuVHJlZTsKICAgIEpQYW5lbCBqcG5UcmVlMDA7CiAgICBKU3BsaXRQYW5lIGpzcGxpdDsKICAgIERlZmF1bHRNdXRhYmxlVHJlZU5vZGUgcm9vdCA9IG51bGw7CiAgICBKVHJlZSB0cmVlOwogICAgSlNjcm9sbFBhbmUganNjOwogICAgCiAgICAKCiAgICBwdWJsaWMgRGVtb0pUcmVlKFN0cmluZyB0ZXh0KSB7CiAgICAgICAgCiAgICAgICAgaW5pdENvbnRhaW5lcigpOwogICAgICAgIAogICAgICAgIGluaXRDb21wb25lbnQoKTsKICAgICAgICAKLy8gICAgICAgIHNldEFjdGlvbigpOwogICAgICAgIGZyYW1lLnNldFRpdGxlKHRleHQpOwogICAgICAgIGZyYW1lLnNldFZpc2libGUodHJ1ZSk7CiAgICB9CgogICAgcHJpdmF0ZSB2b2lkIHNldEFjdGlvbigpIHsKICAgICAgICAKICAgICAgICB0cmVlLmFkZE1vdXNlTGlzdGVuZXIobmV3IE1vdXNlTGlzdGVuZXIoKSB7CiAgICAgICAgICAgIEBPdmVycmlkZQogICAgICAgICAgICBwdWJsaWMgdm9pZCBtb3VzZUNsaWNrZWQoTW91c2VFdmVudCBlKSB7CiAgICAgICAgICAgICAgICAvL2dldExhc3RTZWxlY3RlZFBhdGhDb21wb25lbnQgY2jDrW5oIGxhIG5vZGUgdHJlbiBnaWFvIGRpZW4gZHVvYyBjaG9uCiAgICAgICAgICAgICAgICBPYmplY3Qgb2J0ID0gdHJlZS5nZXRMYXN0U2VsZWN0ZWRQYXRoQ29tcG9uZW50KCk7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIERlZmF1bHRNdXRhYmxlVHJlZU5vZGUgbm9kZSA9IChEZWZhdWx0TXV0YWJsZVRyZWVOb2RlKSBvYnQ7CiAgICAgICAgICAgICAgICBKT3B0aW9uUGFuZS5zaG93TWVzc2FnZURpYWxvZyhudWxsLG5vZGUuZ2V0VXNlck9iamVjdCgpKTsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB9CgogICAgICAgICAgICBAT3ZlcnJpZGUKICAgICAgICAgICAgcHVibGljIHZvaWQgbW91c2VQcmVzc2VkKE1vdXNlRXZlbnQgZSkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOb3Qgc3VwcG9ydGVkIHlldC4iKTsgLy9UbyBjaGFuZ2UgYm9keSBvZiBnZW5lcmF0ZWQgbWV0aG9kcywgY2hvb3NlIFRvb2xzIHwgVGVtcGxhdGVzLgogICAgICAgICAgICB9CgogICAgICAgICAgICBAT3ZlcnJpZGUKICAgICAgICAgICAgcHVibGljIHZvaWQgbW91c2VSZWxlYXNlZChNb3VzZUV2ZW50IGUpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTm90IHN1cHBvcnRlZCB5ZXQuIik7IC8vVG8gY2hhbmdlIGJvZHkgb2YgZ2VuZXJhdGVkIG1ldGhvZHMsIGNob29zZSBUb29scyB8IFRlbXBsYXRlcy4KICAgICAgICAgICAgfQoKICAgICAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgICAgIHB1YmxpYyB2b2lkIG1vdXNlRW50ZXJlZChNb3VzZUV2ZW50IGUpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTm90IHN1cHBvcnRlZCB5ZXQuIik7IC8vVG8gY2hhbmdlIGJvZHkgb2YgZ2VuZXJhdGVkIG1ldGhvZHMsIGNob29zZSBUb29scyB8IFRlbXBsYXRlcy4KICAgICAgICAgICAgfQoKICAgICAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgICAgIHB1YmxpYyB2b2lkIG1vdXNlRXhpdGVkKE1vdXNlRXZlbnQgZSkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOb3Qgc3VwcG9ydGVkIHlldC4iKTsgLy9UbyBjaGFuZ2UgYm9keSBvZiBnZW5lcmF0ZWQgbWV0aG9kcywgY2hvb3NlIFRvb2xzIHwgVGVtcGxhdGVzLgogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgCiAgICAgICAgCiAgICB9CiAgICBwcml2YXRlIHZvaWQgaW5pdENvbnRhaW5lcigpIHsKICAgICAgICAgIGZyYW1lID0gbmV3IEpGcmFtZSgpOwogICAgICAgIGZyYW1lLnNldExheW91dChuZXcgQm9yZGVyTGF5b3V0KCkpOwogICAgICAgIGZyYW1lLnNldERlZmF1bHRDbG9zZU9wZXJhdGlvbihKRnJhbWUuRVhJVF9PTl9DTE9TRSk7CiAgICAgICAgZnJhbWUuc2V0U2l6ZSg0MDAsNjAwKTsKICAgICAgICBmcmFtZS5zZXRMb2NhdGlvblJlbGF0aXZlVG8obnVsbCk7CiAgICB9CgogICAgcHJpdmF0ZSB2b2lkIGluaXRDb21wb25lbnQoKSB7CiAgICAgICAgLy9UYW8ganRyZWUKICAgICAgICBqcG5UcmVlID0gbmV3IEpQYW5lbChuZXcgQm9yZGVyTGF5b3V0KCkpOwogICAgICAgIGpwblRyZWUwMCA9IG5ldyBKUGFuZWwoKTsKICAgICAgICBqcG5UcmVlLnNldFByZWZlcnJlZFNpemUobmV3IERpbWVuc2lvbigzMDAsIDApKTsKICAgICAgICAKICAgICAgICAKICAgICAgICAvL1RhbyBkYW5oIHNhY2ggY2hvIGp0cmVlIGJhbmcgVHJlZU5vZGUgLCB0cmVlTm9kZSBjaGEgbGEgcm9vdAogICAgICAgIHJvb3QgPSBuZXcgRGVmYXVsdE11dGFibGVUcmVlTm9kZSgiQm95IFRNVSIpOwogICAgICAgIC8vVGFvIHRyZWVub3RlIGNvbiBjdWEgcm9vdAogICAgICAgIERlZmF1bHRNdXRhYmxlVHJlZU5vZGUgcGh0Z3YgPSBuZXcgRGVmYXVsdE11dGFibGVUcmVlTm9kZSgiUGhvbmcgaG9wIHRhYyBnaWFuZyB2aWVuIik7CiAgICAgICAgcm9vdC5hZGQocGh0Z3YpOwogICAgICAgIERlZmF1bHRNdXRhYmxlVHJlZU5vZGUgcGhrZCA9IG5ldyBEZWZhdWx0TXV0YWJsZVRyZWVOb2RlKCJQaG9uZyBraW5oIGRvYW5oIik7CiAgICAgICAgcm9vdC5hZGQocGhrZCk7CiAgICAgICAgRGVmYXVsdE11dGFibGVUcmVlTm9kZSBwaGt0ID0gbmV3IERlZmF1bHRNdXRhYmxlVHJlZU5vZGUoIlBob25nIGtlIHRvYW4iKTsKICAgICAgICByb290LmFkZChwaGt0KTsKICAgICAgICBEZWZhdWx0TXV0YWJsZVRyZWVOb2RlIHBoY3RzdiA9IG5ldyBEZWZhdWx0TXV0YWJsZVRyZWVOb2RlKCJQaG9uZyBjb25nIHRhYyBzaW5oIHZpZW4iKTsKICAgICAgICByb290LmFkZChwaGN0c3YpOwogICAgICAgLy9UYW8gY2FjIG5oYW4gdmllbiB0cm9uZyBwaG9uZwogICAgICAgRGVmYXVsdE11dGFibGVUcmVlTm9kZSBudjAwID0gbmV3IERlZmF1bHRNdXRhYmxlVHJlZU5vZGUoIk5ndXllbiBWYW4gQSIpOwogICAgICAgcGh0Z3YuYWRkKG52MDApOwogICAgICAgCiAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICB0cmVlID0gbmV3IEpUcmVlKHJvb3QpOwogICAgICAgIHRyZWUuZXhwYW5kUm93KDApOwogICAgICAgIAogICAgICAgIAogICAgICAgIGpzYyA9IG5ldyBKU2Nyb2xsUGFuZSh0cmVlLEpTY3JvbGxQYW5lLlZFUlRJQ0FMX1NDUk9MTEJBUl9BTFdBWVMsSlNjcm9sbFBhbmUuSE9SSVpPTlRBTF9TQ1JPTExCQVJfQUxXQVlTKTsKICAgICAgICBqcG5UcmVlLmFkZChqc2MsQm9yZGVyTGF5b3V0LkNFTlRFUik7CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgLy9DaHVuZyB0YSB0aGVtIGp0cmVlIHZhbyBtb3QganNwbGl0CiAgICAgICAgCiAgICAgICAganNwbGl0ID0gbmV3IEpTcGxpdFBhbmUoSlNwbGl0UGFuZS5IT1JJWk9OVEFMX1NQTElULGpwblRyZWUsanBuVHJlZTAwKTsKICAgICAgICBqc3BsaXQuc2V0T25lVG91Y2hFeHBhbmRhYmxlKHRydWUpOwogICAgICAgIAogICAgICAgIAogICAgICAgIGZyYW1lLmFkZChqc3BsaXQsQm9yZGVyTGF5b3V0LkNFTlRFUik7CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAKICAgICB9CgogICAgCiAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgICAgICBuZXcgRGVtb0pUcmVlKCJKVFJFRSIpOwogICAgfQogICAgCn0K