-----汉字最好----http://blog.csdn.net/stgsd---
为了实现对象的内容超出对象大小的情况,重新设计了类.
可见对象祖类: Zobj
全部字段如下:
public int x, y, w, h;//坐标及宽高
Zcanvas 画布;
Zpanel 父对象;
public MSG 事件处理=Const.默认事件处理;
public int 锚点;
Font 字体=Font.getDefaultFont();
protected boolean 能否接受焦点;
"画布"承担全部绘图工作,
画板类:Zpanel 所有容器类的祖类,能放入其他对象.
全部字段如下:
public boolean 能否滚动;
protected boolean 能否横向滚动;
// boolean 能否纵向滚动;
private int tx, ty;
int x2, y2, h2;//插入位置及行高
Vector 子对象 = new Vector(4, 4);
public int 间距;
public int 行距;
private Zobj 选中项;
主要功能:对象的加入,移除,插入,排版,触控反应,键盘反应
注意:Zpanel只开启了纵向滚动(限制了宽),并且没有绘出滚动条(留出自绘),在子类中可开启.
Zlist,Zmenu等继承于之. 布类:Zcanvas
画布类:Zcanvas
全部字段如下:
int x, y, w, h;
int 背景样式;// 0透明1单色2纵变刷子3横变刷子4半透明5图片居中6图片拉伸7图片平铺
int 边框样式;//0无边框1直角边框2凹凸边框3圆角边框
int 特效样式;//0无1半透明,2灰色,3加亮,4变暗
int 背景色;
int 前景色;
int 边框色;
Image 背景图;
样式为负值时将跳到"事件处理"中的方法处理,"事件处理"中的方法要自己实现.
主窗口类:Zform继承于Canvas
全部字段如下:
public Zpanel 里层=new Zpanel();//0
public Zpanel 任务栏=new Zpanel();//1
public Zpanel 标题栏=new Zpanel();//2
public Zpanel 表层=new Zpanel();//3
public Zpanel a[]={里层,任务栏,标题栏,表层};
private int 样式=3;
public Zobj 焦点对象;
测试源码:
运行后
点击"菜单"后,注意这里不是一个真正菜单,只是一个Zpanel
用鼠标向上拖动后
点击上箭头切换了选中项
点击"也来换换肤"后
点击"再换一种",加了蓝色边框
点击"菜单"或背景回收菜单,背景"变亮了"