您的位置:首页 > 其它

Swing SideBar(Swing 侧边栏)

2009-07-04 17:54 736 查看
以前在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源码下载地址:

http://download.csdn.net/source/2250693

具体的用法基本在源代码注释里都有
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: