WEB开发网
开发学院软件开发Java 开发Eclipse自定义控件 阅读

开发Eclipse自定义控件

 2009-12-14 00:00:00 来源:WEB开发网   
核心提示: 6、 响应滚动条事件:当控件有滚动条时,我们需要响应用户对滚动条的操作,开发Eclipse自定义控件(2),完成对控件的绘制工作,7、 提供事件监听机制:程序员使用你的控件时通常需要监听控件中发生的一些事件,控件的图形相对于控件可见区域左上角的y坐标}控件开发最重要的就是控件的绘制了,控件的绘制

6、 响应滚动条事件:当控件有滚动条时,我们需要响应用户对滚动条的操作,完成对控件的绘制工作。

7、 提供事件监听机制:程序员使用你的控件时通常需要监听控件中发生的一些事件,这样当事件发生时,他们能够进行相应处理。

8、 提供辅助功能(Accessibility):辅助功能是方便残障人士使用时必须的,标准控件都会提供相应的支持,我们自定义的控件也不例外。

9、 提供功能接口方便程序员访问:通常为方便程序员使用时获取控件中的信息或进行设置,我们需要提供一些接口。

首先我们要开发的列表控件是一个基本控件,所以我们选择Canvas作为我们开发的基类。

 public class ColorList extends Canvas { 
 Vector colors = new Vector(); // 用于保存我们颜色控件中的颜色值 
 Vector colorNames = new Vector(); // 用于保存颜色控件中的颜色名字 
 
 int rowSel = -1; // 用于保存当前选中的行号 
 int oldRowSel = -1; // 用于保存上一次选中的行号 
 
 int maxX, maxY; // 用于保存列表的宽度和高度 
 int lineHeight; // 用于设置行高 
 
 int cx = 0; // 滚动条滚动后,控件的图形相对于控件可见区域左上角的x坐标 
 int cy = 0; // 滚动条滚动后,控件的图形相对于控件可见区域左上角的y坐标 
 } 

控件开发最重要的就是控件的绘制了。控件的绘制可以通过添加PaintListener,在它的paintControl方法中进行。

 addPaintListener(new PaintListener() { 
  public void paintControl(PaintEvent e) { 
  GC gc = e.gc; 
  Point size = getSize(); 
  int beginx = e.x; 
  int beginy = (e.y / lineHeight) * lineHeight; 
  int beginLine = (e.y - cy) / lineHeight; 
  int endLine = beginLine + e.height / lineHeight + 1; 
  if (endLine > getItemCount()) 
   endLine = getItemCount(); 
  for (int i = beginLine; i < endLine; i++) { 
   boolean; 
   if (i == rowSel) 
   selected = true; 
   onPaint(gc, i, cx, beginy + (i - beginLine) * lineHeight, 
    selected); 
  } 
  } 
 }); 

上一页  1 2 3 4 5 6 7  下一页

Tags:开发 Eclipse 定义

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接