初学SWT的一些经验分享以及注意事项_swt怎么屏蔽复制功能-程序员宅基地

技术标签: swt  swing  dll  09.Swing/SWT/JFace  多线程  netbeans  eclipse  

出处:http://www.blogjava.net/jazzy/

本节介绍我在SWT开发中碰到的问题以及一些经验总结。欢迎批评指正。

  •          上文提到的SWT插件功能十分强大,可以随时打开编辑SWT/Swing GUI,而不像NetBeans一定需要一个对应form配置文件才可以编辑一旦该文件丢失就无法可视化编辑了。但是也有bug和不完善的地方,例如复制/粘贴功能,如果你要复制一个多层结构的Composite时候会导致莫名错误,另外,在跨Class复制Composite的时候会导致Imagefont等属性的丢失。请注意。
  •          SWT运行时需要指定DLL,所以要在运行时加参数,如果觉得在eclipse中每次run都要手工加参数太麻烦的话,你可以把那些dll拷贝到windowssystem32目录下,这样就可以直接run/debug而无需手工指定参数了。
  •          对于熟悉Swing的开发人员来说,初次使用SWT可能对SWT中的组件创建时需要指定父亲组件而感到不适应。
  •          因为SWT是原生WidgetSWTGUI大多直接用JNI调用系统资源(例如Color,Font),这些系统资源是无法用JVM的垃圾回收机制回收的,所以记得显式的调用dispose()方法在不需要的时候释放资源。否则有内存溢出的危险。
  •          多线程问题:SWT使用Display类来维护GUI及其使用的系统资源。它禁止用户在其他线程下访问GUI资源。例如:

public void run() {
        butt.setText("test");
    }
这样的写法会导致非法线程异常。如果需要在其他线程下访问GUI资源可以使用如下方法:
Display.getCurrent().asyncExec(new Thread () {
    public void run() {
           butt.setText("test");
    }
})

  •          Display提供同步异步方法分别是: syncExec(Runnable)asyncExec(Runnable)
  •          对于Display,在同一个线程里,不能申明2Display实例。同样的,一个Display实例也不能跨线程使用。也就是说,如果你要在另外一个线程中显示一个窗体,你必须另外创建一个Display实例。不然会导致异常。)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zvane/article/details/1374389

智能推荐

【flink】1.12 读写hive_org.apache.flink.runtime.messages.flinkjobnotfound-程序员宅基地

文章浏览阅读1.6k次。问题解决Caused by: org.apache.flink.runtime.messages.FlinkJobNotFoundException: Could not find Flink job这是在sql-client中查询hive表遇到的问题,启动一下flink的Standlone集群即可。要把之前的启动的都关掉。从Kafka读数据写入hive,一直查不到数据?打开路径/user/hive/warehouse/flink.db/user_behavior_hive_tbl 发现好_org.apache.flink.runtime.messages.flinkjobnotfoundexception: could not find

彩色图像处理_图像处理经典原图mandrill-程序员宅基地

文章浏览阅读1.2k次,点赞3次,收藏9次。实验目的1. 理解图像伪彩色处理的原理2. 掌握空域伪彩色图像处理的方法3. 掌握频域伪彩色图像处理的方法实验方法一、图像的伪彩色处理,将灰度图像转换为彩色图像。1 利用灰度分层法close allclcI=imread('lena.bmp');subplot(1,2,1),imshow(I);X=grayslice(I,16);subplot(1,2,2..._图像处理经典原图mandrill

IDEA 代码字体大小 及 注释颜色 样式设置_idea设置注释字体大小-程序员宅基地

文章浏览阅读370次。也在Editor里面 能找到上面的 就能看见这个 font 一样的可以直接通过搜索框搜索font进行设置。按照1 2 3 4 顺序找到注释的设置 功能作用 详情见下图↓(也可以通过搜索框搜索 )单击进入 Settings。【代码字体大小设置】_idea设置注释字体大小

安卓自动化测试入门-5-创建UI_m15.5 14h-.79l-.28-.27c15.41 12.59 16 11.11 16 9.5-程序员宅基地

文章浏览阅读451次。本篇介绍了这个系列的App范例的UI细节。完成了一个能工作的App。_m15.5 14h-.79l-.28-.27c15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3s3 5

OpenCV+python轮廓-程序员宅基地

文章浏览阅读550次。OpenCV中的轮廓1.1什么是轮廓轮廓可以简单认为成连续的点(连着边界)连在一起的曲线,具有相同的颜色或者灰度。轮廓在形状分析和物体的检测和识别中很有用。为了准确,要使用二值化图像。需要进行阀值化处理或者Canny边界检测。查找轮廓的函数会修改原始图像。如果之后想继续使用原始图像,应该将原始图像储存到其他变量中。在OpenCV中,查找轮廓就像在黑色背景中超白色物体..._opencv 轮廓

【易经】-- 风水基础-程序员宅基地

文章浏览阅读1.2k次,点赞39次,收藏24次。八字源自古代的中国,是一种利用天干和地支来准确记录年、月、日、时的方式,由“年干,年支”、“月干,月支”、“日干,日支”、“时干,时支”,共八个干支所组成(共八个字),年、月、日、时的干支组合称为“柱”,形成“年柱”、“月柱”、“日柱”、“时柱”,故八字又称为“四柱”或“四柱八字”。

随便推点

深度学习之YOLOv5实践应用(3-1)人头检测模型_hyperparameters: lr0=0.01, lrf=0.01, momentum=0.93-程序员宅基地

文章浏览阅读1.3w次,点赞10次,收藏83次。参考:基于yolov5训练人头检测模型 - 知乎一、数据集下载地址:链接:四、模型训练1. 数据集目录配置在data文件夹下创建head.yaml,此文件设置类别数量,类别名称以及数据集的路径。内容如下图所示:​head.yaml2. 预训练模型从 yolov5 github 源码地址下载预训练 yolov5s.pt、yolov5m.pt、yolov5l.pt、yolov5x.pt放置在 weights目录下,训练前需要修改models目录下yolov5.ya_hyperparameters: lr0=0.01, lrf=0.01, momentum=0.937, weight_decay=0.0005, wa

产生随机数的方法-程序员宅基地

文章浏览阅读618次。产生随机数的方法package day02;/** * 如何獲取隨機數 * @author Amanda * java中有龐大的類庫,其中有個數學類,Math類,位於java.lang包;這是Java核心包; * 規定:使用核心包的類,不需要導包 String也是核心包的類 * * Math類有random()方法 * 使用該方法可以得到一個double類型的 ..._随机数的方法

【项目实战课】基于Pytorch的StyleGAN v1人脸图像生成实战-程序员宅基地

文章浏览阅读2.2k次。欢迎大家来到我们的项目实战课,本期内容是《基于Pytorch的StyleGAN v1人脸图像生成实战》。所谓项目实战课,就是以简单的原理回顾+详细的项目实战的模式,针对具体的某一个主题,进..._stylegan pytorch运行

error: pathspec '测试2' did not match any file(s) known to git._error: pathspec 'v2' did not match any file(s) kno-程序员宅基地

文章浏览阅读1.4w次。在使用git时,在本地创建了分支后,提交本地数据到git服务器,总是报错,pull和push都不可以,错误信息包含:error: pathspec '测试2' did not match any file(s) known to git.'credential-cache' is not a git command. See 'git --help'. _error: pathspec 'v2' did not match any file(s) known to git

WSL2初体验之使用 docker版 Ubuntu 18.04,VNC远程控制_wsl(ubuntu18.04)运行docker-程序员宅基地

文章浏览阅读2.8k次。一、前言以前用 Oracle VM VirtualBox,玩 CentOS 7,时不时就卡一些,而且还不流畅(我喜欢平滑顺畅完美);无意中发现了 windows WSL2发布了,感觉很溜啊!内嵌子系统,高大上啊!如果你感兴趣,接着看文章吧。借鉴了很多大佬的经验帖子。二、基础知识准备docker 镜像、容器等概念要理解,常用命令要熟悉。 ubuntu 与 centOS 常用命令要区分,要会用;ubuntu 18 安装软件用:apt-get 要保持会折腾的心,要会静心、有耐心。三、坑,很多很多_wsl(ubuntu18.04)运行docker