聚集网(jujiwang.com) - 收录免费分类目录信息软文发布网址提交
免费加入

释放文本框事件的强大功能:创建动态响应、验证和自动填充 (释放文本框事件的软件)

文章编号:11292时间:2024-09-30人气:


释放文本框事件的软件

文本框事件提供了各种各样的可能性,可以创建动态、响应的表单。通过利用这些事件,您可以实现:

  • 响应用户输入,实时提供反馈
  • 验证用户输入,确保数据的准确性和完整性
  • 创建动态响应
  • 自动填充字段,节省用户时间和精力

常用的文本框事件

最常用的文本框事件包括:

  • oninput:当用户在文本框中输入时触发,适合实时验证和自动填充
  • onfocus:当用户将焦点置于文本框中时触发,适合显示提示或加载数据
  • onblur:当用户将焦点移出文本框时触发,适合验证输入或保存数据
  • onchange:当用户更改文本框中的值时触发,适合提交表单或执行其他操作

示例:动态响应、验证和自动填充

以下是一个示例,演示了如何使用文本框事件来实现动态响应、验证和自动填充:

结论

通过利用文本框事件,开发人员可以创建功能强大、响应迅速且用户友好的表单。通过实现实时验证、自动填充和动态响应,您可以提升用户体验,并确保数据的准确性。释放文本框事件的强大功能,创造更出色、更吸引人的数字体验。


web控件calender怎么弄可以点击每日触发事件,为了添加日程安排,还有怎么让日程显示

vb是Visual Basic的简称,是由美国微软公司于1991年开发的一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发 Windows 环境下的各类应用程序。 它简单易学、效率高,且功能强大可以与 Windows 专业开发工具SDK相媲美。 在Visual Basic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的广泛应用程序接口(API)函数,动态链接库(DLL)、对象的链接与嵌入(OLE)、开放式数据连接(ODBC)等技术,可以高效、快速地开发Windows环境下功能强大、图形界面丰富的应用软件系统。 VB的程序是一种基于窗体的可视化组件安排的联合,并且增加代码来指定组建的属性和方法。 因为默认的属性和方法已经有一部分定义在了组件内,所以程序员不用写多少代码就可以完成一个简单的程序。 过去的版本里面VB程序的性能问题一直被放在了桌面上,但是随着计算机速度的飞速增加,关于性能的争论已经越来越少。 VB的特点1.面向对象 VB采用了面向对象设计思想,它基本思路是把复杂设计问题分解为个个能够完成独立功能——相对简单对象集合。 所谓“对象”就是个可操作实体如窗体、窗体中命令按钮、标签、文本框等面向对象编程就好像搭积木样员可根据和界面设计要求直接在屏幕上“画\出窗口、菜单、按钮等区别类型对象并为每个对象设置属性。 2.事件驱动 在Windows环境下是以事件驱动方式运行每个对象的都能响应多个区别事件,每个事件都能驱动段代码——事件过程该代码决定了对象功能通常称这种机制为事件驱动事件可由用户操作触发也可以由系统或应用触发例如单击个命令按钮就触发了按钮Click(单击)事件该事件中代码就会被执行若用户未进行任何操作(未触发事件)则就处于等待状态整个应用就是由彼此独立事件过程构成3.软件Software集成式开发 VB为编程提供了个集成开发环境在这个环境中编程者可设计界面、编写代码、调试直至把应用编译成可在Windows中运行可执行文件并为它生成安装VB集成开发环境为编程者提供了很大方便4.结构化设计语言 VB具有丰富数据类型是种符合结构化设计思想语言而且简单易学此外作为种设计语言VB还有许多独到的处5.强大数据库访问功能 VB利用数据Control控件可以访问多种数据库VB 6.O提供ADOControl控件不但可以用最少代码实现数据库操作和控制也可以取代DataControl控件和RDOControl控件6.支持对象链接和嵌入技术 VB核心是对对象链接和嵌入(OLE)技术支持它是访问所有对象种思路方法利用OLE技术能够开发集声音、图像、动画、字处理、Web等对象于体7.网络功能 VB 6.O提供了DltTML(Dynamic}tTML)设计工具利用这种技术可以动态创建和编辑Web页面使用户在VB中开发多功能网络应用软件Software8.多个应用向导 VB提供了多种向导如应用向导、安装向导、数据对象向导和数据窗体向导通过它们可以快速地创建区别类型、区别功能应用9.支持动态交换、动态链接技术. 通过动态数据交换(DDE)编程技术VB开发应用能和其他Windows应用的间建立数据通信通过动态链接库技术在VB中可方便地用C语言或汇编语言编写也可Windows应用接口(.API)lO.联机帮助功能 在VB中利用帮助菜单和F1功能键用户可随时方便地得到所需要帮助信息VB帮助窗口中显示了有关举例代码通过复制、粘贴操作可获取大量举例代码为用户学习和使用提供方便VB事件事件(Event):事件是指由系统事先设定的、能被对象识别和响应的动作。 事件是指对象对于外部动作的响应,当对象发生了某个事件,就会执行与此对象的这个事件相应的代码,这段代码被称为“事件过程”。 事件过程的命名格式为: Private Sub 控件名_事件名()例如:我们在窗体上按了一下鼠标左键,这样就发生了一个窗体的“Click”(即单击)事件,并执行与其对应的事件过程。 这个的事件过程名称为: Form1_Click我们可以为事件过程编写代码,使得当某个对象发生了某个事件时可以执行我们需要的一些操作。 事件即控件对外部条件的反应,不同的控件具有不同的事件。 如:对于命令按钮,通常情况下我们都是单击它,所以最常使用的是单击事件,对于驱动器列表框控 件,通常我们使用的是它的改变事件。 但我们使用控件的相应事件时,我们必须对其相应的事件进行编写代码,否则控件什么事情也不会做。 事件处理器 确定控件如何响应事件的事件过程可以称之为“事件处理器”。 要为某一控件的特定事件编写程序,可以通过双击控件切换到代码窗口再选择相应的事件来完成,也可以通过“视图”菜单中的“代码窗口”命令切换到代码编辑窗口来完成。 我们看到两个下拉列表框,第一个下拉列表框里包含了窗体中所有的控件,包括窗体本身;第二个下拉列表框中包含了选中控件的所有事件。 在此状态下,要对某个 控件进行编程,需要 先在左边的下拉列表框中选中要编程的控件,然后再右边的下拉列表框中选择要编程的事件。 例如我们要对“Commandl”控件的“KeyDown’事件 进行编程。 控件名称和相应事件的名称共同构成了事件处理器的名称,如上图中所示的“Form Load ()”表示对象是“Form’窗体,“Load’表示窗体的加载事件,即窗体启动时发生的事件,对此事件进行编程可以确定窗体启动时所做的事情。 以下是VB中的常见事件:change 对于滚动条来说,滑块位置改变;对于textbox来说,内容改变click 对象单击dblclick 对象双击dragdrop 鼠标拖动dragover 鼠标拖过dropdown 鼠标键松开error 错误处理gotfocus 获取焦点itemcheckkeydown 键盘按下keyup 键盘抬起keypress 键盘按键linkclose 网络连接关闭linkerror 网络连接错误linknotifylinkopen oledragoverolegivefeedbackolestartdragpathchangepatternchangerepositionscrolltimer 定时器计时达到预定间隔valiDateLostFocus 对象失去焦点Load 对象加载,比如form的加载MouseDown 鼠标按下 MouseMove 鼠标移动 MouseUP 鼠标抬起 OlecompleteDrag ole对象的拖动 OleDragDrop ole对象的移动 paint 绘画 QueryunLoad Resize form或者控件大小重绘 Terminate 线程,进程终止 Unload 卸载

onchange是什么事件?

onchange是一个事件,用于在用户更改输入内容且输入框失去焦点或输入完成后自动触发的动作。 当文本框、选择框等表单元素的值发生变化时,该事件会被触发。 此事件常常用于在网页或应用程序中实现数据的实时验证、自动更新等功能。 例如,在用户输入邮箱地址时,可以触发onchange事件进行实时格式验证,确保输入内容的正确性。 同时,该事件也常用于表单提交时,收集用户输入的数据。 onchange事件的特点在于它可以监测用户输入的内容是否有所变化,并且在内容改变之后自动进行相应操作。 当用户修改了表单元素的值之后,无需额外的点击或按键操作,系统就能够自动捕获这一变化并触发相应的事件处理函数。 这种机制极大地简化了用户与程序之间的交互过程,提高了用户体验。 同时,开发者也可以通过onchange事件来实现更为智能化的数据处理和验证机制,提高应用程序的实用性和稳定性。 因此,onchange事件在Web开发以及应用程序开发中有着广泛的应用价值。 通过合理的利用该事件,可以为用户带来更加流畅、便捷的交互体验。 总的来说,onchange事件是一种重要的交互事件,适用于在表单元素值发生变化时执行特定的操作和处理。 开发者可以利用该事件实现数据的实时验证、自动更新等功能,提高应用程序的实用性和用户体验。 在实际开发中,需要根据具体的需求和场景来合理使用onchange事件,以实现更加智能、便捷的应用程序交互体验。

VB 6.0语言的组件如何实现动态属性和事件驱动编程?

VB 6.0语言以易于程序员操作为核心理念,无论是初学者还是专家都能轻松上手。 其采用了GUI系统,使开发者能够构建简单的应用程序,同时也支持开发复杂的程序。 在VB中,程序是通过可视化组件的联合和代码指定组件属性和方法来实现的。 默认属性和方法的存在,使得程序员在编写基础程序时无需大量代码,提高了效率。 以往,VB程序的性能问题曾备受关注,但随着计算机性能的大幅提升,这个问题已逐渐减少。 通过拖放技术,开发者可以便捷地增删和调整窗体控件,如文本框和按钮,每个控件都有其属性和事件。 程序员可以在运行时动态修改属性值,如在窗口大小改变事件中添加代码,使控件位置随窗口调整。 文本框内容变化事件中加入相应代码,程序可实现实时响应。 VB支持多窗体结构,主窗体与子窗体类似操作系统,甚至有轻量级对话框用于弹出功能。 组件既可以具备用户界面,也可用于服务器端编程,提供了更大的灵活性。 VB采用引用计数垃圾收集机制,包含丰富的面向对象支持。 虽然不区分大小写,但会自动转换关键词大小写并确保变量名称符合命名规则。 字符串比较默认对大小写敏感,但支持关闭这一特性。 这使得VB能够支持各种第三方控件,尽管在跨应用程序重用控件时,可能因语言特性而略有复杂性。

Axure教程 | 初级电子商务网站设计

从头开始学习创建一个电子商务网站

本教程将引导您逐步构建一个电子商务网站,在创建过程中,将使用Axure原型的多个核心功能:如母板、动态面板。 我们将从头开始整个创建整个过程。

部件使用:图片、矩形、按钮形状、图片热区、动态面板、占位符、文本框、文本面板

交互事件:Onclick

动作:“移动面板”、“隐藏面板”、“设置面板状态为指定状态”、“将面板置于顶层”、“将面板置于底层”、“等待时间(毫秒)”

创建页首母板

创建新母板

第一步,创建一个有LOGO和导航的页首。 在多个页面中都会使用到这个页首,所以将使用母板来制作页首。

在母板窗口,点击“添加母板”按钮。 轻点新建的母板名称并修改名称为“Header”。

双击Header母板打开编辑窗口,在线框图窗口的顶部标签页,可以查看正在编辑的页面和母板。

如果标签页显示,正在编辑的页面为“Header”,那么Header母板己经被打开。

添加Logo图片

第二步从部件窗口拖图片部件到线框图中,双击图片部件导入压缩包中的“”图片。

导入提示是否自动调整对象大小,如果需要自动调整就选择“确定”。 图片会保持原大小被导入,而不按部件的大小导入。

添加导航按钮

接下来,在Logo下,添加3个按钮形状部件。

向下拖动部件窗口下拉条,找出按钮形状部件(不是按钮部件)。 拖3个按钮形状部件到线框图。 双击每个按钮部件修改部件文本,并修改部件标签内容分别为:Men’s, Women’s, 和Sale.

全选3个按钮形状,使用工具栏中的“线条颜色”设置按钮边线为白色(鼠标点击并在按钮上拖出一个选择区,即可全选3个按钮)。

添加水平线

添加一个水平线,将页首和下面的内容分开。

拖动水平线部件到线框图中,拖拽水平线左右两端的修改尺寸的控制柄,可以调整水平线的长度。 用工具栏中的“线条样式”、“线条颜色”编辑样式为点虚线、颜色为蓝色。

在Home页面添加页首

从母板窗口拖页首母板到Home页面。定位在X:200;Y50

母板默认有粉色的遮罩,如果要关闭遮罩,可以在主菜单栏选择“线框图->显示母板遮罩”。

创建产品缩略图和“快速查看”按钮

添加产品缩略图

Home页面,拖入图片部件并交图片部件放在页首母板的下面。

双击部件导入 “”文件,添加第二个图片部件,导入“”文件。

按住shift键并拖拽图片一角,调整图片比例为宽150;高225。

添加“快速查看”按钮

拖一个按钮形状到第一张产品图片上,双击按钮形状修改文本为“快速查看”

“快速查看”按钮只有在鼠标经过图片时才会显示。 所以要将图片转换为动态面板才可以动态的显示或隐藏按钮。 右键按钮形状,快捷菜单选择“转换->按换为动态面板”,将图片放入动态面板中。

编辑名称并隐藏快速视图按钮

在动态面板管理窗口,修改动态面板名称为:QuickViewButton。 修改名称可以让面板在设置交互时更易辨认。

右键动态面板,快捷菜单选择“编辑动态面板->设为隐藏”,将按钮设置为默认隐藏。 这时动态面板会变成黄色。

动态显示按钮

使用“鼠标移入时”事件,设置当鼠标经过产品图片时显示“快速查看”按钮。

点击产品图片,在部性属性面板窗口的交互标签,双击“鼠标移入时”事件添加用例,打开用例编辑器。

添加“显示快速查看按钮”动作

左边栏中,选择“显示面板”。 然后在右边栏中选中QuickViewButton复选框,配置显示的面板,点击确认

使用鼠标移出时事件隐藏“快速查看”按钮,交互会出现错误。 因为当鼠标经过“快速查看”按钮时,鼠标移出时事件就被启动,“快速查看”按钮将被隐藏。

可以在产品图片四边环绕图像映射区,再在图像映射区域上使用“鼠标移入时”事件,就可以隐藏“快速查看”按钮了。

图片映射区是可以设置交互和注释的透明区域。

创建图片“热区”

在产品图片上拖入一个图片热区,图片热区的四个边要比产品图片的四个边留多10px。

右键快捷菜单,选择“顺序->置于底层”,将图片热区放到产品图片和动态面板的下面。

使用图片热区隐藏动态面板

选中图片热区,双击部件属性窗口交互标签中的“当鼠标移入时”事件。 用例编辑器中,左边栏选择“隐藏面板”动作,右边栏中点选QuickViewButtont复选框,选择确定。

详细产品弹出面板和图片播放器

创建详细产品弹出面板

添加矩形部件到线框图,修改矩形大小为:600*450,将矩形放在线框图页面的中间。

转换为动态面板并设置为隐

当“快速查看”按钮被点击时,详细产品弹出面板要动态的显示,所以将详细产品弹出面板转换为动态面板。

右键矩形,快捷菜单选择“转换->转换为动态面板”,并将转换的动态面板命名为“ProductPopup”。

在“快速查看”按钮被点击前,详细产品弹出面板要被隐藏,所以右键动态面板,快捷菜单选择“编辑动态面板->设为隐藏”。

快速查看按钮添加显示面板

现在给快速查看按钮添加交互,当快速按钮被点击时,显示详细产品弹出层.

动态面板管理窗口,双击QuickStartButton面板下的State1(状态1),打开快速查看按钮编辑页,选择“快速查看”按钮,在Onclick事件中添加用例,设置用例动作“显示面板”,并将显示面板配置到显示ProductPopup。

关闭按钮添加隐藏面板动作

下一步,在“详细产品弹出面板”添加关闭弹出面板按钮

动态面板管理窗口,双击ProductPopup面板下的State1(状态1)打开状态编辑页,添加占位符在右上角。 调整尺寸为:40*40。 提示:在工具栏可以编辑部件尺寸。

placeholder面板OnClick事件用例,用例设置“隐藏ProductPopup”动作。

添加产品大图

在这步中,添加当点击缩略图时,产品图片播放的动画视图。

编辑详细产品弹出面板,拖入图片部件到线框图,双击导入“”。 将图片放到左上角。

添加产品缩略图

拖入3个图片部件到图片的下方,导入Jeans1-1, Jeans1-2, 和Jeans1-3,做为缩略图。 拖拽图片边框调整图片尺寸时,按住shift键,保存图片按比例缩放。

建立图片播放动画窗口

我们下面将使用到一个叫“开窗”的技术,即我们将一个动态面板放置到另一个动态面板内。 利用外部面板的尺寸,控制只显示里面动态面板的一部分。

右键产品大图,快捷菜单选择“转换->转换为动态面板”,将产品大图转换为动态面板。 在动态面板编辑器中,重命名面板名称为““SlideshowWindow”。 注意:部件属性窗口的标签栏也自随着面板重命名自动修改了名称。

将多产品图片转换为动态面板

动态面板编辑器中,打开SlideshowWindow面板的State1(状态1),在Jeans1-1图片的右边添加Jean1-2和Jeans1-3图片。

要使用这三张图片在窗口中动态的切换,我们将三张图片转换为动态面板。

全选三张图片(按住shift键点击每张图片,或者点击拖动鼠标圈选所有图片)右键,快捷菜单选择“转换->转换为动态面板”,将三张图片转换为动态面板。 在动态面板管理窗口重新命名动态面板为“SlideshowContent”。

添加OnClick事件移动动态面板

下一步,添加交互让SlideshowContent面板从左边移动到右边。

返回ProductPopup面板,点击第一个缩略图添加OnClick事件用例。 在用例编辑器中,选择移动面板动作,设置移动面板SlideshowContent到坐标:X0;Y0。 注意:要设置为移动到(绝对定位),而不是移动在(相对定位)。 然后设置动画“摆动”,时间500ms。

重复设置另外两个缩略图

在另外两个缩略图上重复设置Click事件。 因为图片的宽度是240px,所以第二个缩略图的事件动作设置为“移动SlideshowContent到 -240x,0y”。 第三个缩略图动作设置为“移动SlideshowContent到-480x, 0y”。

如果想查看交互效果,可以生成原型,图片播放动画己经可以显示了。

“加入购物车

创建“加入购物车”按钮

拖入按钮形状部件到弹出面板的右下角。 在工具栏将按钮颜色设置为蓝色,字体颜色设置为白色。 按钮形状文本修改为“Add to Cart”。

创建购物信息弹出面板

下一步,创建点击“Add to Cart”按钮时显示的“处理中”和“己添加”提示信息。

拖一个矩形部件到弹出面板的中间。 设置背景色为淡灰色;字体颜色为黑色。 编辑矩形文本为“Processing...(处理中)”。

右键矩形部件,快捷菜单中选择“转换->转换为动态面板”。右键动态面板,快捷菜单选择“编辑动态面板->设为隐藏”

添加“Added to Cart”状态

命名动态面板为“MessagesPopup”,并设置状态1名称为“Processing(处理中)”。

右键“Processing”状态,快捷菜单选择“添加状态”,添加状态2,重新命名状态2为“AddedToCart”。

创建“added to cart”信息

打开 “Processing”状态,右键点击矩形,快捷菜单选择“复制”。下一步

打开“AddedToCart”状态,右键空线框图,快捷菜单选择“粘贴”。

编辑按钮属性 - 设置当确认选项己经被添加到购物车时,按钮填充色为绿色。 双击编辑按钮文本为“Successfully added to Cart(己成功加入购物车)”。

设置加入购物车交互

下一步,设置交互:点击“add to cart(加入购物车)”按钮,显示“Processing(处理中)”1秒钟,再显示“Added to Cart(己成功加入购物车)”1秒钟,然后隐藏弹出面板。

返回ProductPopup面板,选中““Add to Cart(加入购物车)”按钮。 双击OnClick事件添加用例,打开用例编辑器。 在这个用例中要添加5个动作。

添加显示/隐藏购物信息弹出面板动作

1.设置“MessagesPopup”面板到 ”Processing”状态。 在右下角,在进行动画的下拉选单选择“淡入淡出”。 注意:“设置面板到指定状态”动作将自动显示面板,所以不需要再添加“显示面板”动作。

2.等待1000毫秒,这个动作设置第一个面板在第二个运作发生前,持续显示1秒。 1000毫秒=1秒。

切换购物信息弹出面板状态

3.设置面板状态到“AddedtoCart”。 设置“MessagesPopup”面板从“Processing”状态切换到“AddedtoCart”状态。 勾选“MessagesPopup”复选框,在复选框下方的“选择状态”下拉选单中,选择“AddedtoCart”状态。

4.再次等待1000毫秒。

添加隐藏购物信息弹出面板动作

5.隐藏面板。 勾选MessagesPopup复选框,动画选择“淡入淡出”。

点击“确定”。 生成原型并测试,新手电子商务网站制作教程部分介绍完毕。

Java桌面应用程序设计:SWT简介

Java语言的声望和它在桌面应用程序(GUI程序)所取得的成就显然极不相符 至今仍然很少能看到非常成功Java桌面程序 虽然有JBuilder Netbean JProbe等大型软件作为代表 但这仍不能证明Java的GUI程序是成功的 它们的外观总是和同一操作系统平台下的其它软件显得格格不入 对机器配置的需求也似乎永无止境 这使得它们只能被一些总是拥有当前最高性能PC的程序员们所容忍 或是那些不在乎金钱和时间的专业用户所接受 对绝大多数计算机使用者来说 AWT或SWING代表着怪异的界面和无法接受的速度 Standard Widget Toolkit(SWT)或许是Java这一噩梦的终结者 广大Java程序员终于可以开发出高效率的GUI程序 它们拥有标准的外观 几乎没有人能看出你的程序是用Java写出来的 更为重要的是 这些程序是跨平台的

SWT本身仅仅是Eclipse组织为了开发Eclipse IDE环境所编写的一组底层图形界面 API 或许是无心插柳 或是有意为之 至今为止 SWT无论是在性能和外观上 都超越了SUN公司提供的AWT和SWING 目前Eclipse IDE已经开发到了 版本 SWT已经十分稳定 这里指的稳定应该包含两层意思

一是指性能上的稳定 其中的关键是源于SWT的设计理念 SWT最大化了操作系统的图形构件API 就是说只要操作系统提供了相应图形的构件 那么SWT只是简单应用JNI技术调用它们 只有那些操作系统中不提供的构件 SWT才自己去做一个模拟的实现 可以看出SWT的性能上的稳定大多时候取决于相应操作系统图形构件的稳定性

另一个稳定是指SWT API包中的类 方法的名称和结构已经少有改变 程序员不用担心由于Eclipse组织开发进度很快(Eclipse IDE每天都会有一个Nightly版本的发布) 而导致自己的程序代码变化过大 从一个版本的SWT更新至另一版本 通常只需要简单将SWT包换掉就可以了

第一个SWT程序

下面让我们开始一个SWT程序 (注意 以下的例子和说明主要针对Windows平台 其它的操作系统应该大同小异) 首先要在Eclipse安装文件中找到SWT包 Eclipse组织并不提供单独的SWT包下载 必须下载完整的Eclipse开发环境才能得到SWT包 SWT是作为Eclipse开发环境的一个插件形式存在 可以在${你的eclipse安装路径}\plugins路径下的众多子目录下去搜索SWT JAR文件 在找到的JAR文件中包含了SWT全部的Java类文件 因为SWT应用了JNI技术 因此同时也要找到相对应的JNI本地化库文件 由于版本和操作平台的不同 本地化库文件的名称会有些差别 比如SWT WIN DLL是Window平台下Eclipse Build 的动态库 而在Unix平台相应版本的库文件的扩展名应该是 so 等等 注意的是 Eclipse是一个开放源代码的项目 因此你也可以在这些目录中找到SWT的源代码 相信这会对开发很有帮助 下面是一段打开空窗口的代码(只有main方法)

import e one example;public class OpenShell{ public static void main(String [] args) {Display display = new Display();Shell shell = new Shell(display);shell open();// 开始事件处理循环 直到用户关闭窗口while (!shell isDisposed()) { if (!display readAndDispatch())display sleep();}display dispose(); }}

确信在CLASSPATH中包括了SWT JAR文件 先用Javac编译例子程序 编译无错后可运行java Djava library path=${你的SWT本地库文件所在路径} e one example OpenShell 比如SWT WIN DLL件所在的路径是C:\swtlib 运行的命令应该是java Djava library path=c:\swtlib e one example OpenShell 成功运行后 系统会打开了一个空的窗口

剖析SWT API

下面再让我们进一步分析SWT API的组成 所有的SWT类都用 eclipse swt做为包的前缀 下面为了简化说明 我们用*号代表前缀 eclipse swt 比如* widgets包 代表的是 eclipse swt widgets包

我们最常用的图形构件基本都被包括在* widgets包中 比如Button Combo Text Label Sash Table等等 其中两个最重要的构件当数Shell和Composite Shell相当于应用程序的主窗口框架 上面的例子代码中就是应用Shell构件打开一个空窗口 Composite相当于SWING中的Panel对象 充当着构件容器的角色 当我们想在一个窗口中加入一些构件时 最好到使用Composite作为其它构件的容器 然后再去* layout包找出一种合适的布局方式 SWT对构件的布局也采用了SWING或AWT中Layout和Layout Data结合的方式 在* layout包中可以找到四种Layout和与它们相对应的布局结构对象(Layout Data) 在* custom包中 包含了对一些基本图形构件的扩展 比如其中的CLabel 就是对标准Label构件的扩展 上面可以同时加入文字和图片 也可以加边框 StyledText是Text构件的扩展 它提供了丰富的文本功能 比如对某段文字的背景色 前景色或字体的设置 在* custom包中也可找到一个新的StackLayout布局方式

释放文本框事件的强大功能

SWT对用户操作的响应 比如鼠标或键盘事件 也是采用了AWT和SWING中的Observer模式 在* event包中可以找到事件监听的Listener接口和相应的事件对象 例如常用的鼠标事件监听接口MouseListener MouseMoveListener和MouseTrackListener 及对应的事件对象MouseEvent

* graphics包中可以找到针对图片 光标 字体或绘图的API 比如可通过Image类调用系统中不同类型的图片文件 通过GC类实现对图片 构件或显示器的绘图功能

对不同平台 Eclipse还开发了一些富有针对性的API 例如 在Windows平台 可以通过* ole win 包很容易的调用ole控件 这使Java程序内嵌IE浏览器或Word Excel等程序成为可能!

更复杂的程序

下面让我们展示一个比上面例子更加复杂一些的程序 这个程序拥有一个文本框和一个按键 当用户点击按键的时候 文本框显示一句欢迎信息

为了文本框和按键有比较合理的大小和布局 这里采用了GridLayout布局方式 这种布局是SWT中最常用也是最强大的布局方式 几乎所有的格式都可能通过GridLayout去达到 下面的程序也涉及到了如何应用系统资源(Color) 以及如何释放系统资源

private void initShell(Shell shell) { //为Shell设置布局对象 GridLayout gShellLay = new GridLayout(); shell setLayout(gShellLay); //构造一个Composite构件作为文本框和按键的容器 Composite panel = new Composite(shell SWT NONE); //为Panel指定一个布局结构对象 这里让Panel尽可能的占满Shell 也就是全部应用程序窗口的空间GridData gPanelData = new GridData(GridData GRAB_HORIZONTAL| GridData GRAB_VERTICAL|GridData FILL_BOTH); panel setLayoutData(gPanelData); //为Panel也设置一个布局对象 文本框和按键将按这个布局对象来显示GridLayout gPanelLay = new GridLayout(); panel setLayout(gPanelLay); //为Panel生成一个背景色 final Color bkColor = new Color(Display getCurrent() ); panel setBackground(bkColor); //生成文本框 final Text text = new Text(panel SWT MULTI|SWT WRAP); //为文本框指定一个布局结构对象 这里让文本框尽可能的占满Panel的空间GridData gTextData = new GridData (GridData GRAB_HORIZONTAL| GridData GRAB_VERTICAL|GridData FILL_BOTH); text setLayoutData(gTextData); //生成按键 Button butt = new Button(panel SWT PUSH); butt setText( Push ); //为按键指定鼠标事件 butt addMouseListener(new MouseAdapter(){public void mouseDown(MouseEvent e){ //当用户点击按键的时候 显示信息 text setText( Hello SWT );} }; //当主窗口关闭时 会触发DisposeListener 这里用来释放Panel的背景色shell addDisposeListener(new DisposeListener(){public void widgetDisposed(DisposeEvent e) { bkColor dispose();} };}

把这段代码中的方法initShell()加入到第一个打开空窗口的例子中 得到的是一段能成功运行的完整GUI应用程序 运行方法可参考第一个例子

系统资源的管理

在一个图形化的操作系统中开发程序 都要调用系统中的资源 如图片 字体 颜色等 通常这些资源都是有限的 程序员务必非常小心的使用这些资源 当不再使用它们时 就请尽快释放 不然操作系统迟早会油尽灯枯 不得不重新启动 更严重的会导致系统崩溃 SWT是用Java开发的 Java语言本身的一大优势就是JVM的 垃圾回收机制 程序员通常不用理会变量的释放 内存的回收等问题 那么对SWT而言 系统资源的操作是不是也是如此?答案是一个坏消息 一个好消息

坏消息是SWT并没采用JVM的垃圾回收机制去处理操作系统的资源回收问题 一个关键的因素是因为JVM的垃圾回收机制是不可控的 也就是说程序员不能知道 也不可能做到在某一时刻让JVM回收资源!这对系统资源的处理是致命的 试想你的程序希望在一个循环语句中去查看数万张图片 常规的处理方式是每次调入一张 查看 然后就立即释放该图片资源 而后在循环调入下一张图片 这对操作系统而言 任何时刻程序占用的仅仅是一张图片的资源 但如果这个过程完全交给JVM去处理 也许会是在循环语句结束后 JVM才会去释放图片资源 其结果可能是你的程序还没有运行结束 操作系统已经宕掉

但下面的好消息也许会让这个坏消息变得无关紧要 对于SWT 只需了解两条简单的 黄金 法则就可以放心的使用系统资源!之所以称为黄金法则 一是因为少 只有两条 二是因为它们出奇的简单 第一条是 谁占用 谁释放 第二条是 父构件被销毁 子构件也同时被销毁 第一条原则是一个无任何例外的原则 只要程序调用了系统资源类的构造函数 程序就应该关心在某一时刻要释放这个系统资源 比如调用了

Font font = new Font (display Courier SWT NORMAL);

那么就应该在不在需要这个Font的时候调用

font dispose();

对于第二个原则 是指如果程序调用某一构件的dispose()方法 那么所有这个构件的子构件也会被自动调用dispose()方法而销毁 通常这里指的子构件与父构件的关系是在调用构件的构造函数时形成的 比如

Shell shell = new Shell();Composite parent = new Composite(shell SWT NULL);Composite child = new Composite(parent SWT NULL);

其中parent的父构件是shell 而shell则是程序的主窗口 所以没有相应的父构件 同时parent又包括了child子构件 如果调用shell dispose()方法 应用第二条法则 那么parent和child构件的dispose()方法也会被SWT API自动调用 它们也随之销毁

线程问题

在任何操作平台的GUI系统中 对构件或一些图形API的访问操作都要被严格同步并串行化 例如 在一个图形界面中的按键构件可被设成可用状态(enable)或禁用状态(disable) 正常的处理方式是 用户对按键状态设置操作都要被放入到GUI系统的事件处理队列中(这意味着访问操作被串行化) 然后依次处理(这意味着访问操作被同步) 想象当按键可用状态的设置函数还没有执行结束的时候 程序就希望再设置该按键为禁用状态 势必会引起冲突 实际上 这种操作在任何GUI系统都会触发异常

Java语言本身就提供了多线程机制 这种机制对GUI编程来说是不利的 它不能保证图形构件操作的同步与串行化 SWT采用了一种简单而直接的方式去适应本地GUI系统对线程的要求 在SWT中 通常存在一个被称为 用户线程 的唯一线程 只有在这个线程中才能调用对构件或某些图形API的访问操作 如果在非用户线程中程序直接调用这些访问操作 那么SWTExcepiton异常会被抛出 但是SWT也在* widget Display类中提供了两个方法可以间接的在非用户线程的进行图形构件的访问操作 这是通过syncExec(Runnable)和asyncExec(Runnable)这两个方法去实现 例如

//此时程序运行在一个非用户线程中 并且希望在构件panel上加入一个按键

Display getCurrent() asyncExec(new Runnable() { public void run() {Button butt = new Button(panel SWT PUSH);butt setText( Push ); }});

方法syncExec()和asyncExec()的区别在于前者要在指定的线程执行结束后才返回 而后者则无论指定的线程是否执行都会立即返回到当前线程

SWT的扩展 JFace

JFace与SWT的关系好比Microsoft的MFC与SDK的关系 JFace是基于SWT开发 其API比SWT更加易于使用 但功能却没SWT来的直接 比如下面的代码应用JFace中的MessageDialog打开一个警告对话框

MessageDialog openWarning(parent Warning Warning message );

如果只用SWT完成以上功能 语句不会少于 行!

JFace原本是为更加方便的使用SWT而编写的一组API 其主要目的是为了开发Eclipse IDE环境 而不是为了应用到其它的独立应用程序 因此在Eclipse 版本之前 很难将JFace API完整的从Eclipse的内核API中剥离出来 总是要多多少少导入一些非JFace以外的Eclipse核心代码类或接口才能得到一个没有任何编译错误的JFace开发包 但目前Eclipse组织似乎已经逐渐意识到了JFace在开发独立应用程序起到的重要作用 在开发的 版本中 JFace也开始变成了和SWT一样的完整独立的开发包 只是这个开发包还在变动中(笔者写本文时 应用的Eclipse M 版本) JFace开发包的包前缀是以 eclipse jface开头 JAR包的源代码也和SWT一样 也在${你的eclipse安装路径}\plugins路径下去找

对开发人员来说 在开发一个图形构件的时候 比较好的方式是先到JFace包去找一找 看是不是有更简洁的实现方法 如果没有再用SWT包去自己实现 比如JFace为对话框提供了很好的支持 除了各种类型的对话框(比如上面用的MessageDialog 或是带有Title栏的对话框) 如要实现一个自定义的对话框也最好从JFace中的Dialog类继承 而不是从SWT中的* widget Dialog继承

应用JFace中的Preference包中的类很容易为自己的软件做出一个很专业的配置对话框 对于Tree Table等图形构件 它们在显示的同时也要和数据关联 例如Table中显示的数据 在JFace 中的View包中为此类构件提供了Model View方式的编程方法 这种方法使显示与数据分开 更加利于开发与维护 JFace中提供最多的功能就是对文本内容的处理 可以在 eclipse jface text * 包中找到数十个与文本处理相关类

与应用程序更近一步

Java程序通常是以class文件的方式发布的 运行class需要JRE或JDK的支持 这又是Java GUI程序的另一个致命的弱点 想象对一个面向广大用户的应用程序来说 无论你的程序功能有多简单 或是你的代码十分的精简 你都不得不让用户去下载一个 M的JRE 那是多么令人沮丧的一件事 而且对程序员来说 Class通常意味着源代码的暴露 反编译的工具让那些居心叵测的人轻易得到你的源代码 虽然有很多对Class的加密方法 但那总是以牺牲性能为代价的 好在我们还有其它的方式可用 把Class编译成exe文件!

lishixinzhi/Article/program/Java/gj//

相关标签: 创建动态响应验证和自动填充释放文本框事件的软件释放文本框事件的强大功能

上一篇:文本框事件的艺术探索高级技巧,提升用户交互

下一篇:掌握文本框事件的终极指南提高用户交互性和

内容声明:

1、本站收录的内容来源于大数据收集,版权归原网站所有!
2、本站收录的内容若侵害到您的利益,请联系我们进行删除处理!
3、本站不接受违法信息,如您发现违法内容,请联系我们进行举报处理!
4、本文地址:http://www.jujiwang.com/article/0942874a55b2441fc36f.html,复制请保留版权链接!


温馨小提示:在您的网站做上本站友情链接,访问一次即可自动收录并自动排在本站第一位!
随机文章
Alpha测试报告:分析结果并制定针对性的改进措施 (alpha测试需要用户参加吗)

Alpha测试报告:分析结果并制定针对性的改进措施 (alpha测试需要用户参加吗)

分析结果Alpha测试的结果显示出以下主要问题,用户界面不直观,用户难以理解界面,并且经常点击错误的按钮,功能性错误,应用程序在某些特定情况下会崩溃或产生意外结果,性能低下,应用程序在某些任务上运行缓慢,影响了用户体验,安全问题,应用程序存在一些潜在的安全漏洞,可能会被利用,缺少文档,用户缺乏使用应用程序所需的充分文档,针对性的改进措...。

最新资讯 2024-09-25 03:07:26

深入理解BeginTransaction,解锁数据库事务的奥秘 (深入理解贝赛儿曲线掘金)

深入理解BeginTransaction,解锁数据库事务的奥秘 (深入理解贝赛儿曲线掘金)

简介在数据库系统中,事务是一个逻辑工作单元,它包含了一系列针对数据库的操作,事务的原子性、一致性、隔离性和持久性,ACID,特性确保了数据库数据的完整性和可靠性,BeginTransaction是启动一个数据库事务的SQL语句,它告诉数据库系统启动一个新的事务,并为该事务分配一个唯一的标识符,事务内的所有操作都将被绑定到该标识符,并在...。

本站公告 2024-09-23 07:06:41

创建定制化滚动体验:深入了解div滚动条的自定义选项 (定制化界面)

创建定制化滚动体验:深入了解div滚动条的自定义选项 (定制化界面)

滚动条是Web设计中一个经常被忽视但至关重要的方面,它们允许用户轻松地在内容丰富的网站和应用程序上导航,从而创造流畅且直观的体验,使用div元素,您可以充分利用自定义滚动条选项,为您的用户创建定制化且引人注目的滚动体验,自定义滚动条的优点增强用户体验,定制化的滚动条可以为您的用户提供更流畅、更愉快的导航体验,提升品牌形象,滚动条可以成...。

本站公告 2024-09-23 04:25:17

ASP.NET 进阶技巧和技术:提升您的开发技能 (asp.net machine account的账户)

ASP.NET 进阶技巧和技术:提升您的开发技能 (asp.net machine account的账户)

asp.netmachineaccount的账户ASP.NET是一种由Microsoft开发的用于构建动态Web应用的开源Web框架,它是一个功能强大的框架,可以帮助开发者创建健壮、可扩展和可维护的Web应用,如果您希望提升您的ASP.NET开发技能,本文将介绍一些进阶技巧和技术,以帮助您创建更出色、更有效的Web应用,缓存缓存是一种...。

最新资讯 2024-09-16 20:34:51

组织:组建项目团队、分配任务和制定沟通计划。(b组织机构代码证书是什么)

组织:组建项目团队、分配任务和制定沟通计划。(b组织机构代码证书是什么)

组织一个有效的项目团队对于成功实施项目至关重要,以下步骤将指导你组建一支高效的团队,分配任务并制定沟通计划,组建项目团队确定所需的技能和经验,根据项目的范围和目标,确定所需的技能、经验和资格,招募团队成员,使用各种来源寻找和招募具有所需技能的合格人员,例如内部招聘、代理和在线平台,建立团队文化,创造一种合作、信任和尊重的文化,鼓励团队...。

最新资讯 2024-09-15 18:47:14

使用SurfaceChanged 优化 Android 相机应用的性能 (使用surforce纳米膜的衣服)

使用SurfaceChanged 优化 Android 相机应用的性能 (使用surforce纳米膜的衣服)

在Android应用中使用相机时,性能优化至关重要,SurfaceChanged事件监听器提供了一种在相机预览表面发生更改时优化性能的方法,本文将介绍如何使用SurfaceChanged事件来提高相机应用的性能,SurfaceChanged事件SurfaceChanged事件在以下情况下触发,相机预览表面创建时预览表面的大小或格式发生...。

技术教程 2024-09-14 21:01:53

使用 W3C 验证工具: 轻松识别并解决您的网站代码中的错误和警告 (w3c验证教程)

使用 W3C 验证工具: 轻松识别并解决您的网站代码中的错误和警告 (w3c验证教程)

简介W3C验证工具是一个在线工具,可以帮助您检查网站代码中的错误和警告,W3C是万维网联盟,WorldWideWebConsortium,的缩写,是一个制定Web标准的国际组织,W3C验证工具的好处识别HTML、CSS和JavaScript代码中的错误和警告帮助您提升网站的质量和可访问性符合最新的Web标准免费且易于使用如何使用W3C...。

互联网资讯 2024-09-14 17:10:58

控件未注册:原因、症状和永久修复 (控件未注册powerpoint2010)

控件未注册:原因、症状和永久修复 (控件未注册powerpoint2010)

的值,并确保其数据值为以下内容,```%SystemRoot%\System32\MSCOMCTL.OCX```4.如果数据值不正确,请双击InprocServer32并将其更改为正确的路径,4.重新安装相关软件如果上述步骤无法解决问题,您可能需要重新安装导致错误的软件,5.联系微软支持如果您尝试了上述所有步骤但仍无法解决问题,则请联...。

互联网资讯 2024-09-13 13:03:44

Java商城:为电子商务企业提供竞争优势的坚实基础 (java商城高并发扣库存)

Java商城:为电子商务企业提供竞争优势的坚实基础 (java商城高并发扣库存)

引言在快节奏的电子商务世界中,拥有一个稳健可靠的平台至关重要,它可以支撑高流量、处理海量数据并提供无缝的用户体验,Java商城应运而生,为电子商务企业提供了一个稳固的基础,帮助他们在这竞争激烈的市场中脱颖而出,Java商城的优点高并发处理能力,Java商城采用先进的架构设计,能够在高峰时期处理大量的并发请求,确保用户可以顺畅无阻地购物...。

最新资讯 2024-09-11 23:47:22

Java 时间探秘:揭秘当前时间获取的幕后机制 (java时间转换日期格式 yyyy-mm-dd)

Java 时间探秘:揭秘当前时间获取的幕后机制 (java时间转换日期格式 yyyy-mm-dd)

在Java中,获取当前时间是一个常用的操作,我们经常使用java.util.Date类来获取当前日期和时间,或者使用java.time包来获得更精确的时间信息,但你知道这些时间获取操作的幕后机制吗,本文将深入探讨Java中获取当前时间的实现细节,揭开其神秘的面纱,1.System.currentTimeMillis,System.c...。

互联网资讯 2024-09-11 05:44:00

在 MATLAB 中创建和使用函数的完整教程 (在MATLAB中,clear表示)

在 MATLAB 中创建和使用函数的完整教程 (在MATLAB中,clear表示)

什么是函数,函数是MATLAB中用于组织代码和重复执行任务的可重用代码块,函数由函数名、输入参数,可选,、输出参数,可选,和函数体组成,创建函数要创建函数,请使用function关键字,后跟函数名,function[outputArg1,outputArg2]=functionName,inputArg1,inputArg2,%函数代...。

本站公告 2024-09-08 23:27:43

北京超自然指南:探索闹鬼的过去和未知的领域 (北京超自然现象研究所)

北京超自然指南:探索闹鬼的过去和未知的领域 (北京超自然现象研究所)

北京超自然现象研究所前言北京,这座历史悠久、人口稠密的城市,隐藏着一个超自然的秘密世界,吸引着好奇心旺盛的探险家和超自然现象爱好者,从古老的寺庙和宫殿到幽暗的胡同和神秘的墓地,北京到处都是闹鬼的传说和超自然活动的报告,本指南旨在为您提供北京超自然现象的综合概述,引导您探索这座城市幽灵般的过去和未知的领域,闹鬼的景点北京拥有众多据称闹鬼...。

互联网资讯 2024-09-05 02:37:26