当前位置: 代码迷 >> 综合 >> 高级UI组件之树(JTree)
  详细解决方案

高级UI组件之树(JTree)

热度:71   发布时间:2023-11-07 07:51:59.0

  简略的说就是节点(DefaultMutableTreeNodes)加内容,内容再加内容,(前内容)便子节点。


package test;import java.awt.EventQueue;import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import javax.swing.JTree;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import java.awt.GridLayout;
import javax.swing.JTextArea;public class NewTest {private DefaultMutableTreeNode root = new DefaultMutableTreeNode("学校管理");private DefaultMutableTreeNode t = new DefaultMutableTreeNode("教师");private DefaultMutableTreeNode s = new DefaultMutableTreeNode("学生");private DefaultMutableTreeNode t1 = new DefaultMutableTreeNode("孔子");private DefaultMutableTreeNode t2 = new DefaultMutableTreeNode("孟子");private DefaultMutableTreeNode s1 = new DefaultMutableTreeNode("子路");private DefaultMutableTreeNode s2 = new DefaultMutableTreeNode("子游");private DefaultMutableTreeNode s3 = new DefaultMutableTreeNode("子渊");private JFrame frame;/*** Launch the application.*/public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {try {NewTest window = new NewTest();window.frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/*** Create the application.*/public NewTest() {initialize();}/*** Initialize the contents of the frame.*/private void initialize() {frame = new JFrame();frame.setBounds(100, 100, 543, 405);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JPanel panel = new JPanel();frame.getContentPane().add(panel, BorderLayout.CENTER);panel.setLayout(null);JPanel panel_1 = new JPanel();panel_1.setBounds(0, 0, 180, 358);panel.add(panel_1);panel_1.setLayout(null);JPanel panel_2 = new JPanel();panel_2.setBounds(179, 0, 346, 358);panel.add(panel_2);panel_2.setLayout(new GridLayout(1, 0, 0, 0));JTextArea textArea = new JTextArea();panel_2.add(textArea);JTree tree = new JTree(root);root.add(s);root.add(t);s.add(s1);s.add(s2);s.add(s3);t.add(t1);t.add(t2);tree.setBounds(0, 0, 180, 358);panel_1.add(tree);tree.addTreeSelectionListener(new TreeSelectionListener() {@Overridepublic void valueChanged(TreeSelectionEvent e) {// TODO Auto-generated method stubDefaultMutableTreeNode node = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();if(node.isLeaf()) {textArea.setText(node.getUserObject().toString());}}});}
}

效果显示: