当前位置: 首页 > news >正文

做网站素材网常州营销型网站建设

做网站素材网,常州营销型网站建设,现在一些产品网站开发用的啥框架,石城网站建设最近#xff0c;我做了一些SWT定制小部件的开发#xff0c;偶然发现了一个问题#xff0c; 为什么没有默认的SWT鼠标单击侦听器#xff1f; 由于这个主题有时会提出#xff0c;所以我认为写一两句话来说明背后的理性基础以及如何实现鼠标单击通常不会受到伤害。 SWT鼠标请… 最近我做了一些SWT定制小部件的开发偶然发现了一个问题 为什么没有默认的SWT鼠标单击侦听器 由于这个主题有时会提出所以我认为写一两句话来说明背后的理性基础以及如何实现鼠标单击通常不会受到伤害。 SWT鼠标请点击 事件驱动的窗口小部件工具箱通常区分低级事件和语义事件。 低电平事件表示窗口系统出现或低电平输入。 鼠标和键盘输入基本上属于此组。 语义事件又是控件特定的用户交互的结果并且可能由一个或多个低级事件组成。 例如可以将按钮单击指定为鼠标下移然后将其指定为鼠标上 移而鼠标不会离开控件的边界 。 问题的关键是控件特定的用户交互 。 可以将图像单击指定为鼠标下移然后单击鼠标上移而不离开图像特定区域的边界。 差别不大但意义重大。 语义事件类型SWT.Selection例如对应于上面为org.eclipse.swt.widgets.Button控件提供的按钮单击规范。 但是它的组成在org.eclipse.swt.widgets.Slider上却大不相同。 后者的行为很像图像单击定义 显然没有人愿意为每个控件区域上的鼠标单击事件添加特定的侦听器。 这是更舒适的基础上那些低级别的赛事有一个语义抽象对关键点或兴趣通知观察者1 。 单击按钮以自定义小部件 那么按钮单击事件实现在自定义SWT小部件的子组件上看起来如何 例如考虑一个由几个标签Composite 无论出于何种原因其中一个标签都应作为动作触发。 点击行为可以通过在SWT的类型化事件抽象之上运行一个小的动作包装器来实现。 它可以实现/扩展org.eclipse.swt.events.MouseListener/-MouseAdapter并且可以在控件上注册以用作按钮单击侦听器 static class ClickBehavior extends MouseAdapter {private final Runnable action;ClickBehavior( Runnable action ) {this.action action;}Overridepublic void mouseDown( MouseEvent event ) {// TODO: decent implementation}Overridepublic void mouseUp( MouseEvent event ) {// TODO: decent implementation} } 如您所见 ClickBehavior类包装了一个Runnable 该Runnable应该通过单击观察到的控件来触发。 为此第一步是验证是否已按下鼠标左键并标记观察者已准备好触发 。 一个简单的mouseDown实现可能如下所示 public static final int LEFT_BUTTON 1; [...] public void mouseDown( MouseEvent event ) {if( event.button LEFT_BUTTON ) {armed true;} } 第二步是检查是否在受监视的控件范围内发生了随后的mouseUp事件。 如果这样并准备好则语义条件已经满足并且可以触发该动作2 public void mouseUp( MouseEvent event ) {if( armed inRange( event ) ) {action.run();}armed false; }static boolean inRange( MouseEvent event ) {Point size ( ( Control )event.widget ).getSize();return event.x 0 event.x size.x event.y 0 event.y size.y; } 此实现足以处理例如org.eclipse.widgets.Label上的“按钮单击”事件如以下代码片段所示 final Shell shell [...]; Label label new Label( shell, SWT.NONE ); label.setText( Click me! ); label.addMouseListener(new ClickBehavior( new Runnable() {Overridepublic void run() {MessageBox box new MessageBox( shell );box.setMessage( Label was clicked. );box.setText( Message );box.open();}} ) ); 瞧这是在运行时的样子 包起来 如上所述SWT省略通用鼠标单击实现是有充分的理由的。 给出的示例显示了如何为自定义窗口小部件实现简单的按钮单击语义。 但是还有更多需要考虑的地方。 小部件通常会在视觉上对鼠标按下做出反应 例如表明它们已准备好触发。 因此自定义窗口小部件代码很快就被炸毁并趋于模糊与事件相关的各种责任。 为了将事件语义与视觉效果代码完全区分开我通常在小助手类中提取第一个。 我什至有一个用于ButtonClick -click事件的通用版本称为ButtonClick 它是Xiliary P2存储库的SWT实用程序功能的一部分。 如果所有与鼠标单击相关的内容引起了对鼠标单击的实际应用的需求如何使用下面的社交按钮共享知识 细心的读者可能已经意识到我忽略了滑块的拖动区域该区域也增加了选择语义。 这是因为它与单击行为不匹配并且将超出本讨论的范围。 ↩ 值得一提的是现实世界中的实现应确保在action.run()期间抛出运行时异常的情况下也重置武装标志。 ↩ 翻译自: https://www.javacodegeeks.com/2014/12/swt-mouse-click-implementation.html
http://www.huolong8.cn/news/16024/

相关文章:

  • 美食网站建设页面要求企业网站建设资金预算表
  • 网站数据泄露我们应该怎么做网站设配色
  • 网站建设公司圣辉友联手机网站设计字体大小
  • 网站运维可以做哪些网页设计与制作第二版答案
  • 个人网站用移动硬盘做服务器网站可以更换域名吗
  • 外贸人常用的网站二级网站模板
  • 企业网站的建设一般要素有网站集约化建设工作方案
  • 公司网站建设管理百度网站架构
  • 移动电商网站设计比亚迪新能源汽车车型
  • 做快递单网站做搜狗手机网站快速排
  • 深圳网站专业建设公司东莞地图全图
  • 怎么做属于自己的域名网站网站性能优化
  • 做淘宝客网站需要什么视频服务器
  • 政务公开 网站建设深汕特别合作区
  • 北京响应式网站建设推荐万荣网站建设
  • 物流公司做网站有用吗必应网站收录提交入口
  • 空间站与空间站组合体交会对接少儿编程培训加盟品牌费用
  • 微网站平台怎样做网站手机版网站模板下载
  • 东莞网站seo优化托管新余公司做网站
  • 网站建设托管模式怎样做企业网站备案
  • 网站推广名词解释品牌设计师职业规划
  • 企业百度网站怎么做怎么建立一个简易的网站
  • 网站开发语言 .net建门户网站
  • 上海网站制作 公司ios个人开发者账号
  • 专门做创意桌椅的网站郑州400建站网站建设
  • wordpress企业网站主题网站备案个人可以做吗
  • 网站制作价格哪些购物网站用php做的
  • 如何注册域名并建设网站pc wap 装修公司网站源码
  • 可以做游戏的网站有哪些内容wordpress图像调用
  • 网站需不需要备案营销推广网站推广方案