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

Posted 事件

篇首语:前方无绝路,希望在转角。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 开发Eclipse下的自定义控件[4]相关的知识,希望对你有一定的参考价值。

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

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

addTraverseListener(new TraverseListener() public void keyTraversed(TraverseEvent e) if (e detail == SWT TRAVERSE_TAB_NEXT|| e detail == SWT TRAVERSE_TAB_PREVIOUS) e doit = true;;);

  很多时候 我们需要有滚动条的支持 对于滚动条 我们只要在上面加上selectionListener 处理它的widgetSelected事件就可以

bar = getVerticalBar();if (bar != null) bar addSelectionListener(new SelectionAdapter() public void widgetSelected(SelectionEvent event) scrollVertical((ScrollBar) event widget););

  下面是函数scrollVertical的代码 一旦用户对滚动条操作 我们就可以计算出要滚动的区域 然后调用scroll函数 对函数scroll函数的调用会导致相应区域的重绘

void scrollVertical(ScrollBar scrollBar) Rectangle bounds = getClientArea();int y = scrollBar getSelection();if (y + maxY < bounds height) y = bounds height maxY;if( y%lineHeight != )y = y y % lineHeight lineHeight;scroll(cx y cx cy maxX maxY false);cy = y;

  现在我们的程序已经基本成形了 我们来进一步完善它 由于我们开发的控件是提供给程序员的 我们需要提供接口 让外部知道控件中发生的事件 其中最重要的是列表项的选中事件 我们需要提供接口让程序员能够添加事件监控器(listener)来监控发生的事件 并且一旦发生事件 我们需要通知监控器

首先 我们添加一个成员来保存添加的事件监控器

Vector selectionListeners = new Vector();

  我们再增加一个函数addSelectionListener 让程序员可以添加监控器

public void addSelectionListener(SelectionListener listener) selectionListeners addElement(listener);

  在我们前面的代码中 我们注意到每次选择项改变 我们都会调用selectionChanged函数 下面是selectionChanged函数代码 这里 我们会生成一个SelectionEvent事件 并且逐个调用事件监控器的widgetSelected方法 这样别人就可以监听到我们的事件了

cha138/Article/program/Java/ky/201311/28982

相关参考

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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