图6-4 自定义选项工具栏
2、 菜单Menu和MenuItem
1)多级菜单的实现与自定义选项卡工具栏的实现方法相同,将下级子菜单Men放入到Hashtable设置key值,key值与上级菜单项MenuItem的data值相等。
2)mouseUp时,遍历Hashtable判断是否有key值与菜单项data值相等,相等则显示,不相等则隐藏。
毕业论文http://www.751com.cn/
图6-5 Menu
3、 下拉箭头菜单定位
在本系统中工具栏的显示方式有两种,置顶和置底,由于实现过程比较简单这里就不再介绍。工具栏的显示如果是置底方式,或者子菜单太长,那么工具栏的子菜单有可能会跑出界面外,所以这里的子菜单定位需要判断。下面以橡皮擦工具为例:
1)通过getLocation()、getBounds()获取橡皮擦按钮在显示器中x、y坐标
X=currentControl.getShell().getLocation().x+ currentControl.getParent().getLocation().x;
Y=currentControl.getShell().getLocation().y+ currentControl.getParent().getParent().getParent().getLocation().y+ currentControl.getParent().getBounds().height;
2) 水平方向判断:界面的长度以及坐标也是通过方法getLocation()、getBounds()获得。判断是否超出界面。若超出,重设X,子菜单靠右显示;若没超出,子菜单正常显示在橡皮擦按钮下方。
subWindow.setLocation(X, Y);
3) 垂直方向判断:方法与水平方向相同,如果超出,重设Y。
图6-6 工具栏置顶子菜单显示
原文请+QQ3249.114辣.文^论,文'网
图6-7 工具栏置底子菜单显示
4、 换肤窗口按钮鼠标效果
选中和经过效果,如图蓝色为mouseDown效果,绿色为mouseEnter图片放大效果。
1)mouseEnter效果,SWT 工具箱对图像的拉伸进行了封装,只需要调用方法 ImageData.scaledTo(int width, int height) 来获得一个拉伸后的 ImageData。重新设置控件背景图片和控件大小。
control.setBackgroundImage(newimage);
<< 上一页 [11] [12] [13] [14] 下一页