SWT自动补全

Eclipse和MyEclipse中Spket插件的安装与使用教程 Spket 是一款强大的代码编辑和开发工具,尤其在前端开发社区中,它以对 JavaScript、JSON 和其他网络语言的高效支持而闻名。它不仅提供了代码高亮、自动补全和验证等功能,而且与 Eclipse 和 MyEclipse 这类流行的集成开发环境(IDE)紧密集成,极大地提升了开发效率。Spket 插件的主要优势在于它对新版本JavaScript语言规范的支持,以及丰富的扩展库。 阅读详情

SWT中Text与Combo控件的自动补全

相信很多编程爱好者都会被大多数IDE中的代码补全功能相当熟悉,在Eclipse中提供自动补全的Alt加/(斜杠)或许已经成为所有Java开发者最常用的快捷键了。Eclipse中的控件都是基于SWT来开发的,那么在SWT的API中是否也具有这样的功能呢?答案是肯定的,我们这里就浅谈SWT中的自动补全功能。在本博文中我们主要针对与Text与Combo两大控件,现在我们直接上代码:
Display display = Display.getDefault();//获取Display
Shell shell = new Shell(); 
shell.setSize(300, 150); //设置窗体大小
shell.setLocation(500, 200);//设置窗体位置
shell.setText("自动补全");//设置标题


//Text控件
Text text = new Text(shell, SWT.BORDER);//添加一个Text控件
text.setBounds(50, 20, 180, 28);//由于Shell没有加布局,这里设置它的位置和大小

//Text控件的自动补全
new AutoCompleteField(text, new TextContentAdapter(), new String[]{"我是一个程序猿","我要加班","我爱编程","你是谁?","你在干什么"});

//Combo控件
Combo combo = new Combo(shell, SWT.DROP_DOWN);//添加一个Combo控件
combo.setBounds(50, 60, 180, 28);//设置Combo控件的位置和大小
String[] items = new String[]{"java语言","C语言","C++语言","C#语言","JavaScript脚本语言"};
combo.setItems(items);//设置Combo组件的选项
//Combo控件的自动补全
new AutoCompleteField(combo, new ComboContentAdapter(),items);


shell.open();
while (!shell.isDisposed()) {//循环不让窗体关掉
    if (!display.readAndDispatch()) {
        display.sleep();
    }
}
display.dispose();
本例子中的代码很简单,读者可以直接拷到一个main方法中运行,其运行效果如图1到图3:
图1 运行效果

图2  输入“我“后弹出提示


图3  选择某一条后自动补全

同样的Combo组件也是一样的,这里第一幅图是直接选择的效果如,第二幅图是输入字符串“C“的效果如,第三幅是选择“C语言”的效果图,具体如图4到图6:
图4  下来框下拉时的选项
图5  下拉框输入“C”之后的提示效果


图6  选择某一提示后的效果

本例子中最有用的就是一行代码,没错,SWT通过这一行代码来实现自动补全功能,如下。其中AutoCompleteField这个类是SWT给出的,他有三个参数第一个参数是他所控制的控件,如果我们要让文本控件自动补全,我们就把他的对象传进去就行了;第二个参数是适配器,对于Text控件我们调用TextContentAdapter即可,对于Combo我们调用ComboContentAdapter即可,他们都是SWT的API提供,有兴趣的读者可以参考它们的源代码然后定义出自己的适配器,以产生不同的效果;第三个参数是提示的文字数组,也就是显示的字,需要注意的是Combo控件的自动补全的值可以和下拉的值不同,也就是setItems方法的值可以和ComboContentAdapter第三个参数的值不同,不过在开发的时候更多的时候是需要他们相同的。
new AutoCompleteField(text, new TextContentAdapter(), new String[]{"我是一个程序猿","我要加班","我爱编程","你是谁?","你在干什么"});
有时候我们会在某些情况下需要改变补全的值,同样很简单,只要调用autoCompleteField对象的setProposals方法即可代码如下:
AutoCompleteField autoCompleteField = new AutoCompleteField(text, new TextContentAdapter(), new String[]{"我是一个程序猿","我要加班","我爱编程","你是谁?","你在干什么"});</span>
autoCompleteField.setProposals(new String[]{"我就爱敲代码","我今天又学到了新东西"});
运行如下,发现果然变了,如图7:
 
图7  修改后的效果

最后补充一点,有时候我们希望Combo组件不可直接输入,我们可以加入如下样式即可:
Combo combo = new Combo(shell, SWT.DROP_DOWN | SWT.READ_ONLY);

Eclipse Swing SWT Builder插件安装及使用教程 Eclipse Swing SWT Builder(以下简称 Builder)是一个强大的Eclipse插件,旨在为Java开发者提供一个简便、高效的Swing GUI开发环境。它集成了 SWT(Standard Widget Toolkit)和 Swing 组件,使用户能够在同一个环境中实现跨平台的桌面应用。Builder插件的出现解决了传统Swing开发中遇到的诸多难题。 阅读详情

相关推荐

BQ25798双电源输入4节电池升降压充电与最大功率跟踪于光伏板应用

介绍一颗具有窄范围直流电压NVDC、路径管理PPMT、光伏板最大功率跟踪及反向放电OTG升降压充电控制器,带I2C接口能对内部寄存器做控制

linkedin_38804946的博客 1681

Java界面 SWT基本组件——组合框(Combo)

组合框(Combo)与自定义组合框(CCombo) 组合框(Combo)与列表框(List)类似,只是两者在现实的外观上不太一样,还多了若干方法,还有自定义组合框(CCombo)又增加了集中不同的样式。 个人感觉 Combo 比 List 美观一些。 Combo 的创建方式: Combo combo = new Combo(shell, SWT.DROP_DOWN); String ite

海上机械师 1万+

U3d WebGL使用ToLua

首先我们在编辑器模式下加入Tolua插件,然后配置修改到在编辑器模式下能够正常的运行。 同个U3d 插件Build出WebGL的工程,运行的时候你会发现(有些需要把这个WebGL工程放在一个HttpServer下面,直接本地访问index.html会被拒绝,让你使用http的格式)。 当要加载完的时候会出现 To use dlopen, you need to use Emscripten'...

qq_35267906的博客 2948

JavaGUI之SWT框架【Combo】

Combo的内容少的可怜,但用的最频繁。其中大多api与List没有太大差别,可以理解为加强版List,List的子元素是固定在面板上,Combo的则是固定在下拉框上。

qq_62835094的博客 646

MATLAB功率谱函数psd与pwelch的使用

在网上看到 clear; Fs=1000; n=0:1/Fs:1; y=cos(2*pi*40*n)+3*cos(2*pi*100*n)+randn(size(n)); Nfft=1000; window=hanning(100); noverlap=20; dflag='none'; [Pxx,f]=psd(y,Nfft,Fs,window,noverlap); figure plot(f,10*log10(Pxx)); xlabel('frequency/Hz');ylab

qq_41687938的博客 2万+

YOLOv8架构革命:通过EfficientViT融合实现精度-速度的帕累托突破

目标检测领域长期存在精度与速度的权衡难题。视觉Transformer(ViT)的引入解决了长距离依赖问题,但其巨大的计算复杂度制约了实时应用。最新研究表明,将轻量级ViT与YOLO架构融合,可在几乎不损失推理速度的前提下,将mAP提升3-8个百分点。这种架构改进方案已在工业检测、自动驾驶、安防监控等多个领域得到验证,在保持实时性的同时显著提升了复杂场景下的检测可靠性。通过模块化设计,可以灵活适配不同规模的YOLOv8模型,为实际应用提供精度-速度的帕累托最优解。

FJN110的博客 149

java 下拉框组件_SWT程序开发—Combo下拉框组件

package demotest;import org.eclipse.swt.*;import org.eclipse.swt.events.ModifyEvent;import org.eclipse.swt.events.ModifyListener;import org.eclipse.swt.widgets.*;/*** @author mositure* 学习Combo下拉框组件*/p...

weixin_34093995的博客 455

Veritas NetBackup8.1.1客户端安装

1.在客户机打开安装包运行Browser 2.选择NetBackup Client Software Installation 3.下一步 4.接受,下一步 5.我选择自定义安装,下一步 6.我选择安装到D盘 7.默认下一步 8.使用域管理账户 9.输入服务器安装了服务端的那一台名称 10.输入服务端生成的令牌,选择“I recognize the fingerprint for this host.Proceed with the certificate deploymen”下一步

万物皆可学 2万+

使用swt实现自动完成功能

     最近使用swt开发一套试题编辑管理工具的时候遇到一个需求,就是用户需要从200多个选项中选出一个,如果使用下拉列表,显然很难使用,以前遇到这种问题的时候,一般都是使用“自动完成”来实现,就是让用户输入编号或者选项的拼音简拼,然后自动带出一个经过筛选的下拉列表,用户这个时候在这个经过筛选的下拉列表选择就可以了,以前曾经用vb和javascript各实现过一次,现在用swt来实现,思路比较简...

flashj 290

SAP 物料的与压缩库存数据不一致

总结:发生这个问题的原因多数会发生在测试系统在拷贝正式系统的时候会发生这样的情况,系统在拷贝的时候,业务数据还在发生,就会导致数据拷贝的时候丢失数据。经过查询发现是由于物料分类账中的物料的库存数量和 ACDOCA_M_EXTRACT表中的数量对不上,导致系统抛出报错的信息。由于是测试系统,直接更改表的数据,把ACDOCA_M_EXTRACT表中的库存数据和金额与物料分类账中的数据保持一致。在测试系统中进行501和561增加库存的时候,系统提示物料的预压缩库存数据不一致的报错。

我小时候很黑的博客 3308

【入门AUTOSAR网络管理测试】RSS-PBM状态转换

随着智能电动汽车行业的快速发展,目前AUTOSAR网络管理也得到了广泛应用,AUTOSAR网络管理测试也是汽车网络测试中非常重要的环节,NM问题导致的汽车ECU不能唤醒、电瓶亏电等问题,对于新入门AUTOSAR网络管理测试的同学不清楚如何开展测试,那么本章节就主要给大家介绍网络管理中RSS-PBM状态转换如何测试。【入门AUTOSAR网络管理测试】AUTOSAR网络管理规范需求解读。

测试领域技术分享 872

swt combo 自动补全

public class AutoCompleteComboMain { static final Display display = new Display(); static final Shell shell = new Shell(display); static String[] items = new String[] { "M...

weixin_30565199的博客 236

YOLOv8改进 | 主干网络 | 增加网络结构增强小目标检测能力【独家创新——附结构图】

YOLOv8改进,小目标检测,yolov8

kay_545 6022

SWT-自动补全实例

package autocomplete; import org.eclipse.jface.bindings.keys.KeyStroke; import org.eclipse.jface.dialogs.Dialog; import org.eclipse.jface.fieldassist.AutoCompleteField; import org.eclipse.jface...

336

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Text,Combo添加内容辅助功能[代码提示] [可下载代码]

原文: 1.       类 a)       ContentProposalAdapter                          i.              内容建议Adapter类. b)       IControlContentAdapter                          i.              内容接口 c)    

能量守恒洛的专栏 1339

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

SWT自动提示

package com.yc.autocomplete; import java.util.ArrayList; public class YcAutoCompleteUi { protected Shell shell; private Text text_1; /**  * Launch the application.  * @param arg

navy专栏 1085

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

RCP学习:内容提示\代码提示\代码补全

我们使用eclipse的java编辑器的时候,会经常用到alt+/触发的自动代码补全 这个并不仅仅是SWT/JFACE框架下的内容更是属于eclipse先说明一下这个概念,现在的eclipse是基于osgi框架的,osgi是一个可热插拔的以bundle为基本元素的灵活管理规范。eclipse提供了一个osgi规范的实现叫做equinox,eclipse的插件(plugin)即是bundle。sw...

weixin_30564785的博客 131

在SWT文本字段中自动完成

介绍 对于丰富的应用程序,您必须观察到文本字段的行为类似于动态组合框。 当用户在文本字段中输入一些字符时,将弹出一个弹出窗口,其中包含值列表作为对用户的建议。 此功能称为自动完成。 如果是Eclipse编辑器,则必须具有 看到在编写Java代码时看到的情况,如果开发人员按下“ Ctrl +空格键”,则动态列表框会提供多个建议。 因此,在本文中,我将向您展示在进行eclipse插件开发时如何实...

IT与开发人员的地盘 256

解决java代码自动补充Default proposals引用默认代码

本人小白一个,由于eclipse新安装,没有设置Java代码自动补充,从网上看了如何入设置代码补充以后我按照设置完毕显示的不是直接补充的Java代码,而是显示这种 非常郁闷,方法都是这样设置的没有任何问题(设置方法略过,网上很多),一开始是要按ALT+/,才能转换,百度了一下也没找到,后来偶然间看到一个帖子,原来在 Eclipse->Perferences->java->Edi...

woniu__的博客 1223

eclipse syso 自动补全设置方法

经常遇到打”syso” 再按Alt+/ 不能自动补全的方法。在eclipse做些调整就可以了,现调整过的的地方大概有三处。低级错误syso 是在方法里面自动补全,如果你在类里面用这个方法,Eclipse是不仅不能自动识别,还会报错。 一是自动补全键被占用在windows->preference->General->keys 中,Word Completion 中字母补全占用了 Alt+/,现在把他

sinat_23536373的博客 4万+

Eclipse syso 自动补全设置方法

经常遇到打”syso” 再按Alt+/ 不能自动补全的方法。在eclipse做些调整就可以了,现调整过的的地方大概有三处。 低级错误 syso 是在方法里面自动补全,如果你在类里面用这个方法,Eclipse是不仅不能自动识别,还会报错。  一是自动补全键被占用 在windows-&gt;preference-&gt;General-&gt;keys 中,Word Completion ...

u011273329的博客 4090

syso java怎么写_eclipse syso 自动补全设置方法

经常遇到打”syso” 再按Alt+/ 不能自动补全的方法。在eclipse做些调整就可以了,现调整过的的地方大概有三处。低级错误syso 是在方法里面自动补全,如果你在类里面用这个方法,Eclipse是不仅不能自动识别,还会报错。一是自动补全键被占用在windows->preference->General->keys 中,Word Completion 中字母补全占用了 Al...

weixin_42373066的博客 2949

告别命令行参数烦恼:DBeaver终端自动补全功能全解析

你是否还在为记不住DBeaver命令行参数而频繁查阅文档?是否曾因输错参数导致程序启动失败?本文将带你掌握DBeaver命令行参数自动补全的实现方法,让终端操作效率提升50%,彻底摆脱参数记忆负担。 ## 为什么需要命令行参数自动补全 在使用DBeaver的命令行工具时,开发者和运维人员经常面临以下痛点: - 参数众多难以记忆,如`-clean`、`-nl`、`-data`等启动参数 - 手动...

gitblog_00712的博客 542
下一篇: 读书笔记《你不知道的JavaScript上卷》1.1作用域是什么
javao_0
博客等级 码龄12年 6粉丝 13原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值