首页 > java教程 > 正文

Java之仿js实现树状折叠菜单

原创 2018-05-14 14:23:37 0 40
赞助会员专享特权

本篇文章给大家分享的内容是Java之仿js实现树状折叠菜单,有着一定的参考价值,有需要的朋友可以参考一下

代码

package com.tuzi;import java.awt.BorderLayout;  

import java.awt.Color;  import java.awt.GridLayout;  
import java.awt.event.ActionEvent;  
import java.awt.event.ActionListener;   

import javax.swing.JButton;  
import javax.swing.JFrame;  
import javax.swing.JPanel;  
import javax.swing.JScrollPane;  

public class B extends JFrame{
      private JButton btn1,btn2,btn3,btn4,btn5;      
      private JPanel pNorth,pSouth,subMenuContainer;      
      private JScrollPane pCenter;      
      private JButton[] btn = null;      
      private static boolean expand=false;      
      
      public B(){
          btn1=new JButton("Grade1 menu1");
          btn1.setBackground(Color.CYAN);
          btn2=new JButton("Grade1 menu2");
          btn2.setBackground(Color.CYAN);
          btn3=new JButton("Grade1 menu3");
          btn3.setBackground(Color.CYAN);
          btn3.addActionListener(new ActionHandler());

          btn4=new JButton("Grade1 menu4");
          btn4.setBackground(Color.CYAN);
          btn5=new JButton("Grade1 menu5");
          btn5.setBackground(Color.CYAN);
          pNorth=new JPanel();
          pNorth.setLayout(new GridLayout(3,1));
          pSouth=new JPanel();
          pSouth.setLayout(new GridLayout(2,1));
          subMenuContainer=new JPanel();
          subMenuContainer.setLayout(new GridLayout(25,1));

          btn=new JButton[25];        
          for(int i=0;i<btn.length;i++){
              btn[i]=new JButton("[菜单"+i+"]");
              btn[i].setBackground(Color.WHITE);
          }          this.setLayout(new BorderLayout());

          pNorth.add(btn1); pNorth.add(btn2); pNorth.add(btn3); 
          for(int i=0;i<btn.length;i++){
              subMenuContainer.add(btn[i]);
          }
          pCenter=new JScrollPane(subMenuContainer);

          pSouth.add(btn4);pSouth.add(btn5);          
          this.add(pNorth,"North");          
          this.add(pCenter,"Center");          
          this.add(pSouth,"South");         
          
          this.setVisible(true);          
          this.setSize(500,600);          
          this.setResizable(false);          
          this.setLocationRelativeTo(null);         
          this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

      } 
      private class ActionHandler implements ActionListener{

          @Override
          public void actionPerformed(ActionEvent e) {         
               if(btn3==e.getSource()){                  
                  if(expand){//折叠
                     pNorth.setLayout(new GridLayout(3,1));
                     pNorth.remove(btn4);pNorth.remove(btn5);
                     pSouth.add(btn4);pSouth.add(btn5);                     
                     for(int i=0;i<btn.length;i++){
                         subMenuContainer.add(btn[i]);
                     }     
                     validate();
                     getContentPane().repaint();
                     expand=false;
                  }else{//展开
                      for(int i=0;i<btn.length;i++){
                          subMenuContainer.remove(btn[i]);
                      }
                      pSouth.removeAll();
                      pNorth.setLayout(new GridLayout(5,1));
                      pNorth.add(btn4);
                      pNorth.add(btn5);
                      pNorth.repaint();
                      pCenter.repaint();
                      pSouth.repaint();
                      validate();
                      getContentPane().repaint();
                      expand=true;
                 }
             }
         }

     }     public static void main(String[] args) {     
         new B();
     }

 }

效果图

这里写图片描述
这里写图片描述

以上就是Java之仿js实现树状折叠菜单的详细内容,更多请关注php中文网其它相关文章!

  • 相关标签:javascript Java 折叠菜单
  • 本文原创发布php中文网 ,转载请注明出处,感谢您的尊重!
  • 相关文章


  • MongoDB(六)java操作mongodb增删改查
  • PHPRPC for Java Spring的事例
  • Material Design的九大设计原则
  • java与php通过socket通信的实例教程
  • 网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
    独孤九贱(4)_PHP视频教程

    独孤九贱(4)_PHP视频教程

    江湖传言:PHP是世界上最好的编程语言。真的是这样吗?这个梗究竟是从哪来的?学会本课程,你就会明白了。 PHP中文网出品的PHP入门系统教学视频,完全从初学者的角度出发,绝不玩虚的,一切以实用、有用...

    独孤九贱(5)_ThinkPHP5视频教程

    独孤九贱(5)_ThinkPHP5视频教程

    ThinkPHP是国内最流行的中文PHP开发框架,也是您Web项目的最佳选择。《php.cn独孤九贱(5)-ThinkPHP5视频教程》课程以ThinkPHP5最新版本为例,从最基本的框架常识开始,将...

    独孤九贱(1)_HTML5视频教程

    独孤九贱(1)_HTML5视频教程

    《php.cn原创html5视频教程》课程特色:php中文网原创幽默段子系列课程,以恶搞,段子为主题风格的php视频教程!轻松的教学风格,简短的教学模式,让同学们在不知不觉中,学会了HTML知识。 ...

    ThinkPHP5实战之[教学管理系统]

    ThinkPHP5实战之[教学管理系统]

    本套教程,以一个真实的学校教学管理系统为案例,手把手教会您如何在一张白纸上,从零开始,一步一步的用ThinkPHP5框架快速开发出一个商业项目。

    PHP入门视频教程之一周学会PHP

    PHP入门视频教程之一周学会PHP

    所有计算机语言的学习都要从基础开始,《PHP入门视频教程之一周学会PHP》不仅是PHP的基础部分更主要的是PHP语言的核心技术,是学习PHP必须掌握的内容,任何PHP项目的实现都离不开这部分的内容,通...

    相关视频教程

  • javascript初级视频教程 javascript初级视频教程
  • jquery 基础视频教程 jquery 基础视频教程
  • javascript三级联动视频教程 javascript三级联动视频教程
  • 独孤九贱(3)_JavaScript视频教程 独孤九贱(3)_JavaScript视频教程
  • 独孤九贱(6)_jQuery视频教程 独孤九贱(6)_jQuery视频教程
  • 相关视频章节