最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2021年05月19日 11:55:52   作者:IT_xiao小巫  
這篇文章主要為大家詳細(xì)介紹了Java圖形用戶界面中樹形菜單的創(chuàng)建樹形菜單的創(chuàng)建,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了Java樹形菜單的創(chuàng)建代碼,供大家參考,具體內(nèi)容如下

功能:實(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)建菜單欄類似,不知道小伙伴們有沒有掌握吶?

相關(guān)文章

  • 分享JPA的幾個(gè)小技巧

    分享JPA的幾個(gè)小技巧

    這篇文章主要分享了JPA的幾個(gè)小技巧,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-03-03
  • MyBatis逆向工程的創(chuàng)建和使用

    MyBatis逆向工程的創(chuàng)建和使用

    這篇文章主要介紹了MyBatis逆向工程的創(chuàng)建和使用,需要的朋友可以參考下
    2017-08-08
  • 帶你重新認(rèn)識(shí)MyBatis的foreach

    帶你重新認(rèn)識(shí)MyBatis的foreach

    這篇文章主要介紹了重新認(rèn)識(shí)MyBatis的foreach,本文提出了一種簡化<foreach>寫法的設(shè)想,更重要的是通過解決空集時(shí)生成的SQL語法問題,更深刻地理解MyBatis的foreach的生成機(jī)制,需要的朋友可以參考下
    2022-11-11
  • 修改Maven settings.xml 后配置未生效的解決

    修改Maven settings.xml 后配置未生效的解決

    這篇文章主要介紹了修改Maven settings.xml 后配置未生效的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • SpringBoot Data JPA 關(guān)聯(lián)表查詢的方法

    SpringBoot Data JPA 關(guān)聯(lián)表查詢的方法

    這篇文章主要介紹了SpringBoot Data JPA 關(guān)聯(lián)表查詢的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • 深入Spring Boot實(shí)現(xiàn)對(duì)Fat Jar jsp的支持

    深入Spring Boot實(shí)現(xiàn)對(duì)Fat Jar jsp的支持

    這篇文章主要介紹了深入Spring Boot實(shí)現(xiàn)對(duì)Fat Jar jsp的支持,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-06-06
  • 詳解Spring Boot微服務(wù)如何集成fescar解決分布式事務(wù)問題

    詳解Spring Boot微服務(wù)如何集成fescar解決分布式事務(wù)問題

    這篇文章主要介紹了詳解Spring Boot微服務(wù)如何集成fescar解決分布式事務(wù)問題,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-01-01
  • Eclipse插件開發(fā)實(shí)現(xiàn)控制臺(tái)輸出信息的方法

    Eclipse插件開發(fā)實(shí)現(xiàn)控制臺(tái)輸出信息的方法

    今天小編就為大家分享一篇關(guān)于Eclipse插件開發(fā)實(shí)現(xiàn)控制臺(tái)輸出信息的方法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • Java中Lambda表達(dá)式和函數(shù)式接口的使用和特性

    Java中Lambda表達(dá)式和函數(shù)式接口的使用和特性

    Java Lambda表達(dá)式是一種函數(shù)式編程的特性,可簡化匿名內(nèi)部類的寫法,與函數(shù)式接口搭配使用,實(shí)現(xiàn)代碼簡潔、可讀性高、易于維護(hù)的特點(diǎn),適用于集合操作、多線程編程等場景
    2023-04-04
  • Spring Boot/Angular整合Keycloak實(shí)現(xiàn)單點(diǎn)登錄功能

    Spring Boot/Angular整合Keycloak實(shí)現(xiàn)單點(diǎn)登錄功能

    Keycloak新的發(fā)行版命名為Quarkus,專為GraalVM和OpenJDK HotSpot量身定制的一個(gè)Kurbernetes Native Java框架,計(jì)劃2019年底正式發(fā)布。這篇文章主要介紹了Spring Boot/Angular整合Keycloak實(shí)現(xiàn)單點(diǎn)登錄,需要的朋友可以參考下
    2019-10-10

最新評(píng)論

三原县| 平南县| 苏尼特右旗| 高雄县| 普宁市| 成武县| 洛南县| 清徐县| 孙吴县| 许昌县| 洛宁县| 衡水市| 乐安县| 西昌市| 康平县| 北宁市| 海盐县| 全州县| 新田县| 长寿区| 宜宾市| 南岸区| 荆门市| 安塞县| 阿拉尔市| 靖安县| 青州市| 云梦县| 浦江县| 乌拉特中旗| 贵阳市| 资兴市| 成武县| 祁门县| 怀柔区| 襄樊市| 新巴尔虎右旗| 磐安县| 镇坪县| 永丰县| 阿克苏市|