java – 检测用户何时完成SWT shell的大小调整
发布时间:2020-12-15 04:51:54 所属栏目:Java 来源:网络整理
导读:我有一个可调整大小的SWT shell.每次调整大小时,我都必须做一些计算密集的事情. 我可以在我的shell上注册一个ControlListener,但是这会在整个调整大小操作中连续生成事件,我不知道调整大小拖动类型鼠标操作何时结束. 我希望能够检测用户何时完成shell的大小
我有一个可调整大小的SWT
shell.每次调整大小时,我都必须做一些计算密集的事情.
我可以在我的shell上注册一个ControlListener,但是这会在整个调整大小操作中连续生成事件,我不知道调整大小拖动类型鼠标操作何时结束. 我希望能够检测用户何时完成shell的大小调整,然后启动我的计算密集型操作.任何想法如何去做? 解决方法
使用计时器并在上次收到调整大小事件后延迟一秒钟后开始操作?
草稿: long lastEvent; ActionListener taskPerformer = new ActionListener() { public void doCalc(ActionEvent evt) { if ( (lastEvent + 1000) < System.currentTimeMillis() ) { hardcoreCalculationTask(); } else { // this can be timed better new Timer(1000,taskPerformer).start(); } } }; } 在你的resize事件中: lastEvent = System.currentTimeMillis(); new Timer(1000,taskPerformer).start(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |