以前在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
具体的用法基本在源代码注释里都有