知识大全 开发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] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!addMous
开发Eclipse下的自定义控件[5] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!publicv
开发Eclipse下的自定义控件[6] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!publicv
开发Eclipse下的自定义控件[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 本文首先介
技术分享——开发Eclipse自定义控件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 现在基于
使用ASP.Net中的自定义控件[4] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &
使用ASP.Net中的自定义控件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! if((data
使用ASP.Net中的自定义控件[5] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &
使用ASP.Net中的自定义控件[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &
使用ASP.Net中的自定义控件[7] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &