Swing SideBar(Swing 侧边栏)

以前在Swing library4.0的jar包里提取了一个sidebar API今天整理了下 拿出来share一下.

同一时期整理过一个datepicker的API 地址:http://blog.csdn.net/a276202460/archive/2009/02/19/3909702.aspx

1.此API提供了菜单部分的闪出进入效果

2.有颜色渐变模式的应用(GradientPaint 应用)

3.button UI的更换也有应用

先看几个demo的截图

 

 

测试代码:

 

/************************* *Test.java *Created By Administrator *Created at Jun 23, 2009 *************************************/
package cn.xy.test;

import java.awt.Color;
import java.awt.Container;
import java.awt.GridLayout;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

import com.eltima.components.ui.SideBar;
import com.eltima.components.ui.SideMenu;
import com.eltima.components.ui.SideMenuItem;

public class Test extends JFrame {
    public Test() {
        super("test");
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setSize(900, 700);
        Container c = this.getContentPane();
        c.setLayout(new GridLayout(2, 2));
        SideBar sidebar1 = CreateSideBarWithIcon();
        SideBar sidebar2 = CreateSideBarDefault();
        SideBar sidebar3 = CreateSideBarWithColor();
        SideBar sidebar4 = CreateSideBarWithColor1();
        c.add(sidebar1);
        c.add(sidebar2);
        c.add(sidebar3);
        c.add(sidebar4);
        setVisible(true);
    }

    public SideBar CreateSideBarWithColor1() {
        SideBar sidebar = new SideBar();
        SideMenu menu = new SideMenu("Sample Menu"); //设置标题和菜单部分的颜色效果 
        SideMenuItem menuitem = new SideMenuItem("testssssssss");
        menuitem.setAttribute("xx", "xxxx");
        menu.addItem(menuitem);
        menuitem = new SideMenuItem("testssssssss");
        menu.addItem(menuitem);
        menuitem = new SideMenuItem("testssssssss");
        menu.addItem(menuitem);
        menuitem = new SideMenuItem("test");
        menu.addItem(menuitem);
        menu.setBodyVisible(true);
        sidebar.addMenu(menu);
        menu = new SideMenu("Sample Menu");
        menu.setTitleLeftColor(Color.red);
        //menu左边的开始颜色 
        menu.setTitleRightColor(Color.blue);
        // menu的右边的结束颜色 
        menu.setTitlePlayer(true);
        //鼠标移动到title部分是否有颜色变化效果 
        menu.setTitleCycles(5);
        //颜色的渐变周期 
        menu.setTitleGradientDirect(SideMenu.LEFT_TO_RIGHT);
        //渐变方向
        menu.setBodyCycles(5);
        //item部分的渐变周期 
        menu.setBodyGradientDirect(SideMenu.DOWN);
        menu.setBodyLeftColor(Color.gray);
        menu.setBodyRightColor(Color.yellow);
        menu.setHideModel(SideMenu.SCALE);
        //设置菜单显示隐藏时候的效果 
        menu.addItem(new SideMenuItem("test0"));
        menu.addItem(new SideMenuItem("test1"));
        menu.addItem(new SideMenuItem("test2"));
        menu.addItem(new SideMenuItem("test3"));
        sidebar.addMenu(menu);
        // 
        menu.setBodyVisible(true);
        return sidebar;
    }

    public SideBar CreateSideBarWithColor() {
        SideBar sidebar = new SideBar();
        SideMenu menu = new SideMenu("Sample Menu");
        //设置标题和菜单部分的颜色效果 
        menu.setTitleLeftColor(Color.red);
        //menu左边的开始颜色 
        menu.setTitleRightColor(Color.blue);
        //menu的右边的结束颜色 
        menu.setTitlePlayer(true);
        //鼠标移动到title部分是否有颜色变化效果 
        menu.setTitleCycles(5);
        //颜色的渐变周期 
        menu.setTitleGradientDirect(SideMenu.LEFT_TO_RIGHT);
        //渐变方向 
        menu.setBodyCycles(5);
        //item部分的渐变周期 
        menu.setBodyGradientDirect(SideMenu.DOWN);
        menu.setBodyLeftColor(Color.gray);
        menu.setBodyRightColor(Color.yellow);
        SideMenuItem menuitem = new SideMenuItem("testssssssss");
        menuitem.setAttribute("xx", "xxxx");
        menu.addItem(menuitem);
        menuitem = new SideMenuItem("testssssssss");
        menu.addItem(menuitem);
        menuitem = new SideMenuItem("testssssssss");
        menu.addItem(menuitem);
        menuitem = new SideMenuItem("test");
        menu.addItem(menuitem);
        menu.setBodyVisible(false);
        sidebar.addMenu(menu);
        menu = new SideMenu("Sample Menu");
        menu.addItem(new SideMenuItem("test0"));
        menu.addItem(new SideMenuItem("test1"));
        menu.addItem(new SideMenuItem("test2"));
        menu.addItem(new SideMenuItem("test3"));
        sidebar.addMenu(menu);
        menu.setBodyVisible(true);
        return sidebar;
    }

    public SideBar CreateSideBarDefault() {
        SideBar sidebar = new SideBar();
        //设置menu的单选状体 每次只能有一个menu展开 
        sidebar.getSidebarpanel().setSingleSelect(true);
        SideMenu menu = new SideMenu("Sample Menu");
        SideMenuItem menuitem = new SideMenuItem("testssssssss");
        menuitem.setAttribute("xx", "xxxx");
        menu.addItem(menuitem);
        menuitem = new SideMenuItem("testssssssss");
        menu.addItem(menuitem);
        menuitem = new SideMenuItem("testssssssss");
        menu.addItem(menuitem);
        menuitem = new SideMenuItem("test");
        menu.addItem(menuitem);
        menu.setBodyVisible(false);
        sidebar.addMenu(menu);
        menu = new SideMenu("Sample Menu");
        menu.addItem(new SideMenuItem("test0"));
        menu.addItem(new SideMenuItem("test1"));
        menu.addItem(new SideMenuItem("test2"));
        menu.addItem(new SideMenuItem("test3"));
        sidebar.addMenu(menu);
        menu.setBodyVisible(true);
        return sidebar;
    }

    public SideBar CreateSideBarWithIcon() {
        SideBar sidebar = new SideBar();
        SideMenu menu = new SideMenu(new ImageIcon(getClass().getResource("/cn/xy/test/sampleIcon.png")), "Sample Menu");
        SideMenuItem menuitem = new SideMenuItem("testssssssss", new ImageIcon(getClass().getResource("/cn/xy/test/sampleIcon2.png")));
        menuitem.setAttribute("xx", "xxxx");
        menu.addItem(menuitem);
        menuitem = new SideMenuItem("testssssssss", new ImageIcon(getClass().getResource("/cn/xy/test/sampleIcon2.png")));
        menu.addItem(menuitem);
        menuitem = new SideMenuItem("testssssssss", new ImageIcon(getClass().getResource("/cn/xy/test/sampleIcon2.png")));
        menu.addItem(menuitem);
        menuitem = new SideMenuItem("test", new ImageIcon(getClass().getResource("/cn/xy/test/sampleIcon2.png")));
        menu.addItem(menuitem);
        menu.setBodyVisible(false);
        sidebar.addMenu(menu);
        menu = new SideMenu(new ImageIcon(getClass().getResource("/cn/xy/test/sampleIcon.png")), "Sample Menu");
        menu.addItem(new SideMenuItem("test0"));
        menu.addItem(new SideMenuItem("test1"));
        menu.addItem(new SideMenuItem("test2"));
        menu.addItem(new SideMenuItem("test3"));
        sidebar.addMenu(menu);
        menu.setBodyVisible(true);
        return sidebar;
    }

    public static void main(String[] s) {
        new Test();
    }
}

eclipse源码下载地址:

https://download.csdn.net/download/a276202460/2250693

 

具体的用法基本在源代码注释里都有

 

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值