知识大全 开发Eclipse下的自定义控件[3]

Posted 焦点

篇首语:勇士搏出惊涛骇流而不沉沦,懦夫在风平浪静也会溺水。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 开发Eclipse下的自定义控件[3]相关的知识,希望对你有一定的参考价值。

开发Eclipse下的自定义控件[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

addMouseListener(new MouseListener() public void mouseDoubleClick(MouseEvent e) public void mouseDown(MouseEvent e) int row = (e y cy) / lineHeight; //计算选中的行if (row >= ) oldRowSel = rowSel;rowSel = row;if (oldRowSel != rowSel) // 重画旧的和新的选择项((Canvas) e getSource()) redraw(cx (e y / lineHeight)* lineHeight maxX lineHeight false);((Canvas) e getSource()) redraw(cx (oldRowSel + cy/ lineHeight)* lineHeight maxX lineHeight false);selectionChanged();public void mouseUp(MouseEvent e) );

  当我们的控件获得焦点时 选中的列表项需要有虚框表示控件得到焦点 当获得或失去焦点是 我们这里只需要简单的通知选中的项重画

addFocusListener(new FocusListener() public void focusGained(FocusEvent e) ((Canvas) e getSource()) redraw(cx rowSel * lineHeight maxX lineHeight true);public void focusLost(FocusEvent e) ((Canvas) e getSource()) redraw(cx rowSel * lineHeight maxX lineHeight true););

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

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 + beginy);Color color = Display getCurrent() getSystemColor(((Integer) colors get(row)) intValue());gc setBackground(color);gc fillRectangle(beginx + beginy + lineHeight );gc setBackground(initColor);gc setForeground(initForeColor);if (isFocusControl() && isSelected)gc drawFocus(cx beginy maxX lineHeight); cha138/Article/program/Java/ky/201311/28984

相关参考

知识大全 开发Eclipse下的自定义控件[5]

开发Eclipse下的自定义控件[5]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!publicv

知识大全 开发Eclipse下的自定义控件[6]

开发Eclipse下的自定义控件[6]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!publicv

知识大全 开发Eclipse下的自定义控件[1]

开发Eclipse下的自定义控件[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  本文首先介

知识大全 开发Eclipse下的自定义控件[4]

开发Eclipse下的自定义控件[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  作为一个可

知识大全 技术分享——开发Eclipse自定义控件

技术分享——开发Eclipse自定义控件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  现在基于

知识大全 使用ASP.Net中的自定义控件[3]

使用ASP.Net中的自定义控件[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &

知识大全 使用ASP.Net中的自定义控件

使用ASP.Net中的自定义控件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  if((data

知识大全 使用ASP.Net中的自定义控件[4]

使用ASP.Net中的自定义控件[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &

知识大全 使用ASP.Net中的自定义控件[5]

使用ASP.Net中的自定义控件[5]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &

知识大全 使用ASP.Net中的自定义控件[2]

使用ASP.Net中的自定义控件[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &