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

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

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

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

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

效果圖:

代碼:

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é)點和子節(jié)點 
  DefaultMutableTreeNode root = new DefaultMutableTreeNode("文本編輯器"); 
  DefaultMutableTreeNode node1 = new DefaultMutableTreeNode("文件"); 
  DefaultMutableTreeNode node2 = new DefaultMutableTreeNode("編輯"); 
  //利用根節(jié)點創(chuàng)建TreeModel 
  DefaultTreeModel treeModel = new DefaultTreeModel(root); 
  //插入子節(jié)點node1,node2 
  treeModel.insertNodeInto(node1,root,root.getChildCount()); 
  treeModel.insertNodeInto(node2,root,root.getChildCount()); 
 
  //創(chuàng)建節(jié)點node1的子節(jié)點并插入 
  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é)點node2的子節(jié)點并插入 
  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)建樹對象 
  JTree tree = new JTree(treeModel); 
  //設(shè)置Tree的選擇為一次只能選擇一個節(jié)點 
  tree.getSelectionModel().setSelectionMode( 
       TreeSelectionModel.SINGLE_TREE_SELECTION); 
  //注冊監(jiān)聽器 
  tree.addTreeSelectionListener(this); 
 
  tree.setRowHeight(20); 
 
  //創(chuàng)建節(jié)點繪制對象 
  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è)置選或不選時,文字的變化顏色 
  cellRenderer.setTextNonSelectionColor(Color.black); 
  cellRenderer.setTextSelectionColor(Color.blue); 
   
  //把樹對象添加到內(nèi)容面板 
  container.add(new JScrollPane(tree)); 
 
  //創(chuàng)建標(biāo)簽 
  label = new JLabel("你當(dāng)前選擇的節(jié)點為:",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)閉動作 
 } 
 
 //處理TreeSelectionEvent事件 
 public void valueChanged(TreeSelectionEvent event) 
 { 
  JTree tree = (JTree)event.getSource(); 
  //獲取目前選取的節(jié)點 
  DefaultMutableTreeNode selectionNode = 
   (DefaultMutableTreeNode)tree.getLastSelectedPathComponent(); 
  String nodeName = selectionNode.toString(); 
  label.setText("你當(dāng)前選取的節(jié)點為: "+nodeName); 
 } 
 
 public static void main(String args[]) 
 { 
  Tree d = new Tree(); 
 } 
 
} 

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

相關(guān)文章

  • 分享JPA的幾個小技巧

    分享JPA的幾個小技巧

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新評論

招远市| 出国| 蚌埠市| 衡阳市| 台中县| 社旗县| 冕宁县| 卓尼县| 柳林县| 襄城县| 蒙山县| 从化市| 仲巴县| 太原市| 红桥区| 开鲁县| 托克托县| 盐城市| 宿迁市| 永济市| 松原市| 永定县| 商水县| 东平县| 垦利县| 开封市| 锡林浩特市| 南通市| 屯留县| 银川市| 海南省| 深圳市| 休宁县| 固阳县| 贞丰县| 年辖:市辖区| 静海县| 平乐县| 东明县| 嘉义市| 永安市|