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

开发Eclipse自定义控件

 2009-12-14 00:00:00 来源:WEB开发网   
核心提示: 我们在绘制每一个列表项时可以加入判断当前控件是否得到焦点,如果控件得到了焦点,开发Eclipse自定义控件(5),我们就在选中的项目上画一个虚框,下面是我们绘制一个列表项的代码,TAB键的支持也是很重要的,由于我们的控件是从Canvas继承过来的,注意在代码的最后绘制焦点的虚框,voidonPa

我们在绘制每一个列表项时可以加入判断当前控件是否得到焦点,如果控件得到了焦点,我们就在选中的项目上画一个虚框。下面是我们绘制一个列表项的代码,注意在代码的最后绘制焦点的虚框。

 void onPaint(GC gc, int row, int beginx, int beginy, boolean isSelected) { 
 Color initColor = gc.getBackground(); 
 Color initForeColor = gc.getForeground(); 
 if (isSelected) { 
  gc.setBackground(Display.getCurrent().getSystemColor( 
   SWT.COLOR_LIST_SELECTION)); 
  gc.fillRectangle(beginx, beginy, maxX, lineHeight); 
  gc.setForeground(Display.getCurrent().getSystemColor( 
   SWT.COLOR_LIST_SELECTION_TEXT)); 
 } else { 
  gc.setBackground(initColor); 
 } 
 gc.drawString((String) colorNames.get(row), beginx + 24, beginy); 
 Color color = Display.getCurrent().getSystemColor( 
  ((Integer) colors.get(row)).intValue()); 
 gc.setBackground(color); 
 gc.fillRectangle(beginx + 2, beginy + 2, 20, lineHeight - 4); 
 gc.setBackground(initColor); 
 gc.setForeground(initForeColor); 
 if (isFocusControl() && isSelected) 
  gc.drawFocus(cx, beginy, maxX, lineHeight); 
 } 

作为一个可操作的控件,TAB键的支持也是很重要的。由于我们的控件是从Canvas继承过来的,不支持TAB键。下面的代码使我们的控件有TAB键的支持:

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

Tags:开发 Eclipse 定义

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