国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java樹形菜單的創(chuàng)建

2019-11-26 14:55:44
字體:
供稿:網(wǎng)友

功能:實(shí)現(xiàn)創(chuàng)建一個(gè)樹形菜單
說明:創(chuàng)建樹形菜單結(jié)構(gòu)與創(chuàng)建菜單欄類似,是按層次與模型創(chuàng)建的。
通過DefaultMutableTreeNode類創(chuàng)建根節(jié)點(diǎn)、子節(jié)點(diǎn)和孫節(jié)點(diǎn)對(duì)象,再通過DefaultTreeModel
類利用根節(jié)點(diǎn)創(chuàng)建樹模型對(duì)象,然后通過treeModel.insertNodeInto方法將節(jié)點(diǎn)對(duì)象插入樹模型中。

效果圖:

代碼:

import java.awt.*; import javax.swing.*; import javax.swing.tree.*; import javax.swing.event.*; public class Tree extends JFrame implements TreeSelectionListener {  private JLabel label;   public Tree()  {   super("樹形菜單"); setSize(400,400);   Container container = getContentPane();    //創(chuàng)建根節(jié)點(diǎn)和子節(jié)點(diǎn)   DefaultMutableTreeNode root = new DefaultMutableTreeNode("文本編輯器");   DefaultMutableTreeNode node1 = new DefaultMutableTreeNode("文件");   DefaultMutableTreeNode node2 = new DefaultMutableTreeNode("編輯");   //利用根節(jié)點(diǎn)創(chuàng)建TreeModel   DefaultTreeModel treeModel = new DefaultTreeModel(root);   //插入子節(jié)點(diǎn)node1,node2   treeModel.insertNodeInto(node1,root,root.getChildCount());   treeModel.insertNodeInto(node2,root,root.getChildCount());    //創(chuàng)建節(jié)點(diǎn)node1的子節(jié)點(diǎn)并插入   DefaultMutableTreeNode leafnode = new DefaultMutableTreeNode("打開");   treeModel.insertNodeInto(leafnode,node1,node1.getChildCount());   leafnode = new DefaultMutableTreeNode("保存");   treeModel.insertNodeInto(leafnode,node1,node1.getChildCount());   leafnode = new DefaultMutableTreeNode("另存為");   treeModel.insertNodeInto(leafnode,node1,node1.getChildCount());   leafnode = new DefaultMutableTreeNode("關(guān)閉");   treeModel.insertNodeInto(leafnode,node1,node1.getChildCount());    //創(chuàng)建節(jié)點(diǎn)node2的子節(jié)點(diǎn)并插入   leafnode = new DefaultMutableTreeNode("剪切");   treeModel.insertNodeInto(leafnode,node2,node2.getChildCount());   leafnode = new DefaultMutableTreeNode("復(fù)制");   treeModel.insertNodeInto(leafnode,node2,node2.getChildCount());   leafnode = new DefaultMutableTreeNode("粘貼");   treeModel.insertNodeInto(leafnode,node2,node2.getChildCount());    //創(chuàng)建樹對(duì)象   JTree tree = new JTree(treeModel);   //設(shè)置Tree的選擇為一次只能選擇一個(gè)節(jié)點(diǎn)   tree.getSelectionModel().setSelectionMode(        TreeSelectionModel.SINGLE_TREE_SELECTION);   //注冊(cè)監(jiān)聽器   tree.addTreeSelectionListener(this);    tree.setRowHeight(20);    //創(chuàng)建節(jié)點(diǎn)繪制對(duì)象   DefaultTreeCellRenderer cellRenderer =        (DefaultTreeCellRenderer)tree.getCellRenderer();    //設(shè)置字體   cellRenderer.setFont(new Font("Serif",Font.PLAIN,14));   cellRenderer.setBackgroundNonSelectionColor(Color.white);   cellRenderer.setBackgroundSelectionColor(Color.yellow);   cellRenderer.setBorderSelectionColor(Color.red);    //設(shè)置選或不選時(shí),文字的變化顏色   cellRenderer.setTextNonSelectionColor(Color.black);   cellRenderer.setTextSelectionColor(Color.blue);      //把樹對(duì)象添加到內(nèi)容面板   container.add(new JScrollPane(tree));    //創(chuàng)建標(biāo)簽   label = new JLabel("你當(dāng)前選擇的節(jié)點(diǎn)為:",JLabel.CENTER);   label.setFont(new Font("Serif",Font.PLAIN,14));   container.add(label,BorderLayout.SOUTH);    setVisible(true); //設(shè)置可見   setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //設(shè)置窗口關(guān)閉動(dòng)作  }   //處理TreeSelectionEvent事件  public void valueChanged(TreeSelectionEvent event)  {   JTree tree = (JTree)event.getSource();   //獲取目前選取的節(jié)點(diǎn)   DefaultMutableTreeNode selectionNode =    (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();   String nodeName = selectionNode.toString();   label.setText("你當(dāng)前選取的節(jié)點(diǎn)為: "+nodeName);  }   public static void main(String args[])  {   Tree d = new Tree();  }  } 

本文按層次與模型創(chuàng)建的樹形菜單,與創(chuàng)建菜單欄類似,不知道小伙伴們有沒有掌握吶?

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 定安县| 抚宁县| 马公市| 定安县| 会东县| 常州市| 巴中市| 宣武区| 衡南县| 九龙县| 定日县| 库伦旗| 泰州市| 绥芬河市| 平罗县| 策勒县| 安塞县| 昌宁县| 林州市| 丰台区| 资源县| 建瓯市| 阿瓦提县| 东莞市| 阿鲁科尔沁旗| 伊宁县| 阳城县| 康平县| 天台县| 博兴县| 百色市| 江北区| 博客| 班玛县| 定州市| 惠来县| 榕江县| 庆元县| 股票| 平阳县| 舞阳县|