首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用setData()获取使用SWT小部件附加的所有键/值对

setData()是SWT(Standard Widget Toolkit)小部件的一个方法,用于设置小部件的附加数据。它接受一个Map对象作为参数,其中包含要设置的键/值对。

SWT是一套用于创建桌面应用程序的Java图形库,它提供了丰富的小部件和工具,用于构建跨平台的用户界面。setData()方法允许开发人员将自定义数据附加到SWT小部件上,以便在需要时进行访问和使用。

使用setData()方法可以实现以下功能:

  1. 保存与小部件相关的任意数据,例如状态信息、配置选项等。
  2. 在小部件之间共享数据,以便它们可以相互通信和交互。
  3. 在事件处理程序中传递额外的上下文信息。

使用setData()方法可以为SWT小部件附加任意数量的键/值对。键是一个唯一的标识符,值可以是任何Java对象。可以使用getdata()方法来检索已设置的数据。

以下是一个示例代码,演示如何使用setData()方法设置和获取附加数据:

代码语言:txt
复制
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class SetDataExample {
    public static void main(String[] args) {
        Display display = new Display();
        Shell shell = new Shell(display);

        Button button = new Button(shell, SWT.PUSH);
        button.setText("Click me");

        // 设置附加数据
        button.setData("key1", "value1");
        button.setData("key2", 42);

        // 获取附加数据
        String value1 = (String) button.getData("key1");
        int value2 = (int) button.getData("key2");

        System.out.println("Value 1: " + value1);
        System.out.println("Value 2: " + value2);

        shell.open();
        while (!shell.isDisposed()) {
            if (!display.readAndDispatch()) {
                display.sleep();
            }
        }
        display.dispose();
    }
}

在上面的示例中,我们创建了一个按钮并将两个键/值对附加到它上面。然后,我们使用getData()方法检索这些数据,并将它们打印到控制台上。

对于SWT小部件的更高级使用和详细信息,可以参考腾讯云的SWT开发指南:SWT开发指南

请注意,以上答案仅供参考,具体的实现方式可能因应用场景和需求而有所不同。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

可视化(番外篇)——SWT总结

各个部件进行初始化(外观,状态等),同时为各种部件事件创建监听器(listener) (5).      调用Shell对象open()方法以显示窗体 (6).     ...每个控件都会有自己部件,这个父部件可以是Composite类或它子类,shell也是Composite子类。   SWT中控件体系继承关系为: ?...selectAll、显示设置选取文本showSelection、取消所有选择clearSelection、将选取字符串复制到剪贴板copy等   List(列表框):SWT.SINGLE(默认只能选中一个...Event(事件):当一个事件到达事件监听对象时,要携带一些该事件所附加一些信息。   ...(是否继续执行此事件,设置为false,则取消该事件)、e.stateMask(按下其他同时所使用辅助)   键盘事件举例: public class TestKeyListener { protected

1.6K100

SWT】常用代码(二)

前言:窗口事件 很多桌面应用程序与用户交互都是通过事件机制来实现,如鼠标或键盘被按下或 者释放。事件通过监听器通知应用程序哪个部件发生了什么动作,然后作出相应反应。...org.eclipse.swt.events 包中包含了所有SWT 专用事件类和监听器接口。...,它添加监听方法 为 addXListener,关于监听器使用请看下面实例代码。...这里需要进一步说明是 keyCode 和 stateMask 属性。keyCode 表示代码,与键码 应关系见表所示。 键盘事件  键盘事件采用了无类型事件方式实现。...;如果按下 为“Backspace”,则由控制台输出“Backspace”,这是因为通 过 event.keyCode 来获取按键键码实现分支语句执行。

6910

【插件开发】—— 4 SWT编程须知

根据前两篇博文,应该插件开发有所了解。...那么这里SWT就是Eclipse插件所应用到部件开发框架。   里面包含了大量桌面控件,并且进行了一系列优化整合,相对于Swing,极大减少了内存消耗。...而且关于资源释放也需要开发者注意,需要特定手动删除,但是比如一个部件部件会随着该部件销毁而销毁。   ...下面看一下开发中常用一些部件模型,这里介绍并不全,控件其实有很多很多,这里就简单介绍几种: ?   这里Widget是一个超类,所有部件都继承与这个类。...它也提供了一些常用方法,比如添加一些监听,获取常用信息等等。

1.1K50

曾经是“杀手级”桌面语言,Java桌面开发为何走向衰落?

大学时代正好赶上 2000 年之前最后那几年,当时 Java 是计算科学专业里官方语言。虽然也有几门课程要求使用 C 和 C++,但所有基础知识教学都是围绕 Java 语言来设计。...虽然标签号称可以在“多浏览器”环境下正常嵌入程序,但 IE 上实际使用却是标签,而 Mozilla 上使用则是标签。...所以乍看之下,长久难题似乎终于有了答案。 SWT 优势在于无需自行绘制小部件,而仅仅是为了平台本机小部件提供绑定,因此由它构建应用程序在观感上原生度更高、响应速度也更快。...虽然我还没有在项目中实际使用SWT,但很高兴看到它能经受住这么多年风雨考验。...比如应用程序可能在菜单项中使用了错误加速、甚至不提供标准菜单。没错,虽然听起来很简单,但想让 Swing UI 在 Mac 上完全适配本机风格还是颇有难度。

1.6K20

java SWT:TraverseEvent理解塈添加TraverseListener实现Composite之间TAB切换焦点

是指widget中组件遍历(切换焦点)动作发生时产生事件 举例来说,就是当我们使用光标,TAB/shift-TAB,PAGE-UP/DOWN等在按钮(Button)之间切换焦点时候,就会产生...当在Canvas中按下TAB时, TraverseEvent#detail字段SWT.TRAVERSE_TAB_NEXT ,TraverseEvent#doit 字段是false,这时系统默认行为不会将这个...TAB理解为用户是想将焦点设置到下一个widget,这就意味着在Canvas中按键侦听器(key Listener)将会收到用户敲TAB(SWT.TAB)—所以默认情况下,用TAB是无法在widget...如果要想让Composite对象支持TAB在组件间移动焦点,就要改变系统TAB行为,修改TraverseEvent#doit 字段为true 下面是org.eclipse.swt.widget.Control...理解》 《org.eclipse.swt.events.TraverseEvent》 《SWT/JFace 按键、事件、监听》

77210

SWT】常用代码及接口(一)

display.readAndDispatch()) diaplay.sleep(); } 通过readAndDispatch()方法进行读取事件 二:常用API getText()获取组件标签文字,如标签未设或分隔符则返回空...它和按钮一 样都是常用 SWT 组件,二者常常配合使用 1.定义文本框方法 构造方法: public Text(Composite parent,int style) 2:构造用法:  Text...且输入文本长度作 了限制,不能超过 8 个字符。 设置了提示信息,当鼠标停留在“文本框”、“按钮”时将出现提示信息。此方法既可以起到帮助功能又可以起到容错功能。...getItemCount()获取下拉框下拉选项数量。 getItems()获取下拉框下拉选项字符串数组。 select(int index)将下拉框第 index+1 项设置为当前项。...remove(int index)将下拉框中清除相对于零给定索引对应选项。 removeAll()将下拉框中所有下拉选项清除。

8410

QCustomPlot开发笔记(一):QCustomPlot简介、下载以及基础绘图

然后为图形指定一些数据点,例如通过customPlot->graph(0)->setData(…),例如,以两个QVector形式表示x和y()。...QCustomPlot使用术语而不是x和y原因是,在指定哪个轴具有什么角色时允许更大灵活性。   ...例如,索引为0图形使用左轴(yAxis)作为其使用底轴(xAxis)作为其。...为了达到小于1秒精度,axis ticker使用浮点数。因此,小于1.0代表相应秒分数。...获取五位数摘要(最小、下四分位、中位数、上四分位、最大),并将其表示为一个统计框。也可以显示异常值。 QCPColorMap:一种2D地图,通过使用颜色渐变来可视化第三个数据维度。

2K20

【插件开发】—— 9 编辑器代码分块着色-高亮显示!

前文回顾: 1 插件学习篇 2 简单建立插件工程以及模型文件分析 3 利用扩展点,开发透视图 4 SWT编程须知 5 SWT简单控件使用与布局搭配 6 SWT复杂空间与布局搭配 7 SWT...这个文档对象需要我们提供一个分块对象,输入文件流进行分块。这里主要使用一个接口IDocumentPartitioner,常用实现类是FastPartitioner。...我们要解决问题大致如下:   如何进行分块?   如何进行着色?   如何附加到编辑器上?   一下是代码编写思维导图 ?   ...  这个类提供了一个map,里面包含了对应类型及其对应RGB颜色Color对象,通过查询这个map,可以获取相应颜色,进行着色。...(Activator.PREF_COLOR_KEYWORD, StringConverter.asString(new RGB(128,0,128))); 28 } 29 }   由于博主自己这部分代码也没有达到熟练使用地步

2.6K60

Java SWT事件

监听器就是监听事件什么时候发生,用来控制事件发生具体动作。(个人见解) 事件产生处SWT组件称为事件源,(官方) 对事件作出具体动作称为监听器(Listener)。...监听器负责监听组件上事件,并发生事件进行处理。基本模式是将一个监听器添加到已经创建组件中,当相应事件发生时,监听器代码就会被执行。...所有的事件、监听器和适配器都放在包org.eclipse.swt.events中。...常用方法: keyPressed() 当焦点在组件上时,按下键盘任一时触发。但对某些组件(如按钮Button),按回车时不能触发。keyReleased() 按键弹起时触发。...事件处理示例"); PDF 文件使用 "pdfFactory" 试用版本创建www.fineprint.cn text=new Text(shell,SWT.BORDER|SWT.WRAP); RowData

1.9K50

Android模拟用户点击实现方法

在自动化测试中可使用工具。 可以利用adb命令,也可以使用Android SDK中monkeyrunner工具。...win7-64 gitbash 使用adb命令 主要使用input命令 usage: input ......,比如homekeycode=3,backkeycode=4 tap是touch屏幕事件,只需给出x、y坐标即可 swipe模拟滑动事件,给出起点和终点坐标即可 编写一个bat脚本,模拟用户滑动...系统变量中加入ANDROID_SWT,此例中路径为G:\SDK\tools\lib\x86_64 修改后脚本rustmonkeyrunner.bat,Windows环境下需要在gitbash或CMD里运行...若当前打开是第三方app,会直接报错,获取不到相应信息 总结 以上就是这篇文章全部内容了,希望本文内容大家学习或者工作具有一定参考学习价值,如果有疑问大家可以留言交流,谢谢大家ZaLou.Cn

2.3K20

Python 笔记:GUI编程(Tkinter)

wxPython:wxPython 是一款开源软件,是 Python 语言一套优秀 GUI 图形库,允许 Python 程序员很方便创建完整、功能 GUI 用户界面。...除了一些标准模块,Jython 使用 Java 模块。Jython 几乎拥有标准Python 中不依赖于 C 语言全部模块。比如,Jython 用户界面将使用 Swing,AWT或者 SWT。...注意:Python3.x 版本使用库名为 tkinter,即首写字母 T 为小写。...这些控件通常被称为控件或者部件。 目前有15种Tkinter部件。我们提出这些部件以及一个简短介绍,在下面的表: 控件 描述 Button 按钮控件;在程序中显示按钮。...---- 标准属性 标准属性也就是所有控件共同属性,如大小,字体和颜色等等。

5.1K30

C++ Qt开发:ToolBar与MenuBar菜单组件

addWidget(QWidget *widget) 向工具栏中添加一个小部件。 addSeparator() 向工具栏中添加一个分隔符。 clear() 清除工具栏上所有动作和小部件。...clear() 清除工具栏上所有动作和小部件。 setAllowedAreas(Qt::ToolBarAreas areas) 设置工具栏允许停靠区域,可以是上、下、左、右、所有区域组合。...这些方法提供了 QToolBar 进行动作、小部件和外观等方面的控制,使其适应不同应用场景。你可以根据具体需求使用这些方法,定制工具栏外观和行为。...这些方法提供了 QMenuBar 进行菜单管理、外观设置以及与其他小部件交互等方面的控制。你可以根据具体需求使用这些方法,定制菜单栏外观和行为。...工具栏组件与MenuBar菜单栏组件,在所有窗体应用程序中都广泛被使用使用这两种组件可以很好规范菜单功能分类,用户可根据菜单栏来选择不同功能,实现灵活用户交互。

28110

C++ Qt开发:ToolBar与MenuBar菜单组件

clear() 清除工具栏上所有动作和小部件。...clear() 清除工具栏上所有动作和小部件。...这些方法提供了 QToolBar 进行动作、小部件和外观等方面的控制,使其适应不同应用场景。你可以根据具体需求使用这些方法,定制工具栏外观和行为。...这些方法提供了 QMenuBar 进行菜单管理、外观设置以及与其他小部件交互等方面的控制。你可以根据具体需求使用这些方法,定制菜单栏外观和行为。...工具栏组件与MenuBar菜单栏组件,在所有窗体应用程序中都广泛被使用使用这两种组件可以很好规范菜单功能分类,用户可根据菜单栏来选择不同功能,实现灵活用户交互。

80410

几款可替代DreamweaverHTML5开发工具

Dreamweaver一个web前端工作者来说,再熟悉不过了,像我07年接触web前端开发就是用Dreamweaver,一直用到现在, 身边朋友有跟我推荐过各种更好用可替代Dreamweaver...不过如果你想 CSS 了如指掌, CSS 网页布局非常熟练,还是扔掉一切辅助软件,用记事本开发,而熟练 CSS 之后,再使用此类辅助软件,可以提高工作效率和开发速度。...Eclipse用户界面还使用了GUI中间层JFace,从而简化了基于SWT应用程序构建。 Eclipse 插件机制是轻型软件组件化架构。...在富客户机平台上,Eclipse使用插件来提供所有附加功能,例如支持Java以外其他语 言。...Eclipse核心很小,其它所有功能都以插件形式附加于Eclipse核心之上。

4K50

java SWT:用SWTKeySupport方便进行组合判断(如Ctrl+F11)

https://blog.csdn.net/10km/article/details/53468302 SWT下如果判断包含shfit,ctrl,alt组合,就要用到KeyEvent...关于stateMask用法,参见我上一篇博客《java SWT:MouseEvent,KeyEvent中stateMask字段用法》 比如我们要用Ctrl-F11来实现全屏和正常屏幕显示切换...,直接使用stateMask字段判断代码可以写成这样: /** * 屏幕为全屏状态时为true */ private boolean fullScreen=false...org.eclipse.jface.bindings.keys.SWTKeySupport中提供了一些方便方法用于将stateMask和keyCode字段组合起来返回一个int方便进行判断。...(SWT.CTRL|’%’) 比如”Ctrl+F11” 返回 为(SWT.CTRL|SWT.F11) 关于SWTKeySupport.convertEventToUnmodifiedAccelerator

75410

jQuery.data() 实现方式

用name和value为对象附加数据;即传入三个参数,第一个参数为需要附加数据对象,第二个参数为数据名称,第三个参数为数据。当然,只是获取值的话,也可以不传入第三个参数。      2....(名称为“name”,为“value”),然后通过 $.data(obj, 'name') 来获取附加数据。...为了深入了解其中实现机制,我们有使用了一个循环来获取 “obj” 属性,实际上是取出了在 “obj” 上附加 “cache”对象。     ...然后是 setData() 函数,用于设置 “cache” 属性;实际上也就是设置 cache[name] 。     ...因为考虑到 IE6、IE7 DOM Element 上对象引用垃圾回收存在问题,我们不会直接在 DOM Element 上附加对象;而是使用全局cache,并在 DOM Element 上附加一个

94570

详解:程序页面预加载优化,让你程序运行如飞

如何实现程序在触发页面跳转前就请求协议,利用跳转页面的短短200~300ms时间,获取到数据并渲染到页面上,实现数据在程序页面中预加载。...)参数分别是、异步请求方法、异步请求方法参数。...initData在$onNavigator中是以bind(this)方式传入,导致initData在这个时期上下文自动变为clazz,clazz拥有CommonPage中所有方法,所以可以使用...(也是要改很多东西,比如你要把第一个时期调用所有setData全部改成$setData,这个应该说是没有。) 如果不想用预加载,改动量越少越好。(不想用预加载?...$setData(obj); 那么$setData会将person.name为,合并到data中,并没有修改data中personname属性。

7.5K11
领券