CN106843862A - 一种Swing界面自动构成的方法 - Google Patents
一种Swing界面自动构成的方法 Download PDFInfo
- Publication number
- CN106843862A CN106843862A CN201710009767.4A CN201710009767A CN106843862A CN 106843862 A CN106843862 A CN 106843862A CN 201710009767 A CN201710009767 A CN 201710009767A CN 106843862 A CN106843862 A CN 106843862A
- Authority
- CN
- China
- Prior art keywords
- attribute
- swing
- xml file
- interfaces
- control
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种Swing界面自动构成的方法,所述方法为:将所有Swing界面元素的属性全都定义在一个XML文件中;需要生产界面时,通过读取XML文件解析数据来获取界面元素的属性;通过JAVA的反射技术来实现运行时生成Swing界面。本发明实现了界面与业务逻辑的分离,提高了程序的可读性和可维护性;提高了编程效率。
Description
技术领域
本发明涉及界面设计技术领域,尤其涉及一种Swing界面自动构成的方法。
背景技术
传统JAVA程序开发Swing界面,界面上元素的属性、样式、行为等全都定义在代码中,代码无法复用,耦合度高;与业务逻辑代码混合不便于开发和维护;此外,如果想修改界面,就必须要对代码进行修改,再次编译,降低了效率。
现有技术中公开了“一种应用软件更新方法和装置”,见公开号为:CN105335201A,公开日为:2016-02-17的中国专利,方案包括:下载完关于目标功能的更新包后,从更新包中提取该目标功能的目标启动图标,在相应运行界面输出;检测到目标启动图标被启动的操作后,调起预定义组件;基于该更新包,通过JAVA语言的反射特性,生成启动该目标功能所需的运行参数和包括该目标功能启动所需的对象的调用方法的运行环境,在该运行环境中创建该目标功能运行所需的类和工具对象,修改所需类的预定变量,根据该修改后的预定成员变量值,在调起的预定义组件的生命周期中通过该instrument对象和运行参数,调起关于该目标功能运行所需的对象的调用方法,以实现该目标功能的启动。应用该发明实施例可以实现应用软件的自动更新与静默伪安装。该发明虽然也进行了截面的更新,但是采用的技术跟本专利申请并不相同。
发明内容
本发明要解决的技术问题,在于提供一种实现了界面与业务逻辑的分离,提高了程序的可读性和可维护性;提高了编程效率。
本发明是这样实现的:一种Swing界面自动构成的方法,所述方法为:将所有Swing界面元素的属性全都定义在一个XML文件中;需要生产界面时,通过读取XML文件解析数据来获取界面元素的属性;通过JAVA的反射技术来实现运行时生成Swing(Swing是一个用于开发Java应用程序用户界面的开发工具包)界面。
进一步的,对Swing界面修改时,只要修改XML文件。
进一步的,将所有Swing界面元素的属性全都定义在一个XML文件中;其中,元素的属性按照XML格式书写,属性包括名称、坐标、大小、以及父容器等;每一个节点代表一个UI控件,每一个特征attribute对应控件的一个属性,attribute预先在解析器中添加处理而获得扩展支持。
进一步的,所述方法设置有界面元素解析模块和各类Swing类型解析模块,通过界面元素解析模块和各类Swing类型解析模块读取XML文件进行解析数据,获得界面元素的属性,即每一个UI控件在XML用一个节点表示,通过XML读取库,读取XML文件,获取每一个UI控件的节点,再读取相应节点对应的特征attribute,即可得到对应界面元素属性。
进一步的,通过JAVA的反射技术来实现运行时生成Swing界面具体为:一个UI控件对应XML文件中的一个节点,每一个节点中的attribute描述了这个控件的某项属性;每个UI控件必然定义一个class属性表明该对象的类;解析器获取到UI控件的类名,调用对应的类的解析器类,调用其生成控件的方式,以获得对应类型的控件。如XML文件中某一节点标明class为Button,程序从所有的解析器中找到按键工具ButtonAnalyzer,调用它的生成控件方法,便获得了一个按钮对象。遍历XML文件中的节点,就获得了全部的控件对象,实现生成界面。
本发明具有如下优点:一、实现了界面与业务逻辑的分离,提高了程序的可读性和可维护性。(界面元素定义在单独的XML文件中,程序代码只需要专注于业务逻辑)
二、修改界面不需要修改代码并重新编译,只需要修改相应的XML文件,更加地灵活。也提供了非开发人员修改界面的渠道。(利用JAVA提供的反射技术,实现了在程序运行时获取界面元素的类型并动态生成相应对象)。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明方法结构示意图。
具体实施方式
请参阅图1所示,一种Swing界面自动构成的方法,所述方法为:将所有Swing界面元素的属性全都定义在一个XML文件中;需要生产界面时,通过读取XML文件解析数据来获取界面元素的属性;通过JAVA的反射技术来实现运行时生成Swing界面。后续对Swing界面修改时,只要修改XML文件。
所述方法具体为:将所有Swing界面元素的属性全都定义在一个XML文件中;其中,元素的属性按照XML格式书写,属性包括名称、坐标、大小、以及父容器等。XML格式如:<Component id="readIDNo"class="JButton"parentid="openCard"text="读二代证"x="0"y="0"width="20"height="10"/>如上例,表示一个坐标为(0,0),长20,宽10的按钮,按钮文字为“读二代证”,自身id为"readIDNo",父容器为id为"openCard"的控件。同时可以通过预先修改解析器来实现更多属性的支持。
解析模块需要一个通用解析模块(即界面元素解析模块)以及针对各类Swing类型的解析模块,根据XML文件中定义的内容,通过JAVA反射技术生成对应的对象。
所述方法设置有界面元素解析模块和各类Swing类型解析模块,通过界面元素解析模块和各类Swing类型解析模块读取XML文件进行解析数据,获得界面元素的属性,即每一个UI控件在XML用一个节点表示,通过XML读取库,读取XML文件,获取每一个UI控件的节点,再读取相应节点对应的特征attribute,即可得到对应界面元素属性。
通过JAVA的反射技术来实现运行时生成Swing界面具体为:一个UI控件对应XML文件中的一个节点,每一个节点中的attribute描述了这个控件的某项属性;每个UI控件必然定义一个class属性表明该对象的类;解析器获取到UI控件的类名,调用对应的类的解析器类,调用其生成控件的方式,以获得对应类型的控件。
注:反射技术是java语言提供的一种在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性的方法。即通过反射可以使得程序能够在运行时调用任意一个类的任意方法。
XML是一种可扩展标记语言,很类似HTML,其标签没有被预定义。需要自行定义标签。即上述内容中用于描述Ui控件属性的XML文件的内容中,节点名、属性名(即attribute)都可自行定义。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
Claims (5)
1.一种Swing界面自动构成的方法,其特征在于:所述方法为:将所有Swing界面元素的属性全都定义在一个XML文件中;需要生产界面时,通过读取XML文件解析数据来获取界面元素的属性;通过JAVA的反射技术来实现运行时生成Swing界面。
2.根据权利要求1所述的一种Swing界面自动构成的方法,其特征在于:对Swing界面修改时,只要修改XML文件。
3.根据权利要求1所述的一种Swing界面自动构成的方法,其特征在于:将所有Swing界面元素的属性全都定义在一个XML文件中;每一个节点代表一个UI控件,元素的属性按照XML格式书写,属性包括名称、坐标、大小、以及父容器;每一个节点代表一个UI控件,每一个特征attribute对应控件的一个属性,attribute能预先在解析器中添加处理而获得扩展支持。
4.根据权利要求1所述的一种Swing界面自动构成的方法,其特征在于:所述方法设置有界面元素解析模块和各类Swing类型解析模块,通过界面元素解析模块和各类Swing类型解析模块读取XML文件进行解析数据,获得界面元素的属性,即每一个UI控件在XML用一个节点表示,通过XML读取库,读取XML文件,获取每一个UI控件的节点,再读取相应节点对应的特征attribute,即可得到对应界面元素属性。
5.根据权利要求1所述的一种Swing界面自动构成的方法,其特征在于:通过JAVA的反射技术来实现运行时生成Swing界面具体为:一个UI控件对应XML文件中的一个节点,每一个节点中的attribute描述了这个控件的某项属性;每个UI控件必然定义一个class属性表明该对象的类;解析器获取到UI控件的类名,调用对应的类的解析器类,调用其生成控件的方式,以获得对应类型的控件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710009767.4A CN106843862A (zh) | 2017-01-06 | 2017-01-06 | 一种Swing界面自动构成的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710009767.4A CN106843862A (zh) | 2017-01-06 | 2017-01-06 | 一种Swing界面自动构成的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106843862A true CN106843862A (zh) | 2017-06-13 |
Family
ID=59117952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710009767.4A Pending CN106843862A (zh) | 2017-01-06 | 2017-01-06 | 一种Swing界面自动构成的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106843862A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108051008A (zh) * | 2017-11-24 | 2018-05-18 | 惠州市德赛西威汽车电子股份有限公司 | 一种车载导航界面IDriver功能的实现方法 |
CN108182067A (zh) * | 2017-12-28 | 2018-06-19 | 广州芯德通信科技股份有限公司 | Swing优化和美化的程序 |
CN109324857A (zh) * | 2018-09-07 | 2019-02-12 | 腾讯科技(武汉)有限公司 | 一种用户引导实现方法、装置和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020085020A1 (en) * | 2000-09-14 | 2002-07-04 | Carroll Thomas J. | XML-based graphical user interface application development toolkit |
CN104239044A (zh) * | 2014-09-05 | 2014-12-24 | 北京航天自动控制研究所 | 一种图形用户界面动态生成方法 |
-
2017
- 2017-01-06 CN CN201710009767.4A patent/CN106843862A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020085020A1 (en) * | 2000-09-14 | 2002-07-04 | Carroll Thomas J. | XML-based graphical user interface application development toolkit |
CN104239044A (zh) * | 2014-09-05 | 2014-12-24 | 北京航天自动控制研究所 | 一种图形用户界面动态生成方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108051008A (zh) * | 2017-11-24 | 2018-05-18 | 惠州市德赛西威汽车电子股份有限公司 | 一种车载导航界面IDriver功能的实现方法 |
CN108182067A (zh) * | 2017-12-28 | 2018-06-19 | 广州芯德通信科技股份有限公司 | Swing优化和美化的程序 |
CN109324857A (zh) * | 2018-09-07 | 2019-02-12 | 腾讯科技(武汉)有限公司 | 一种用户引导实现方法、装置和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2530583B1 (en) | Computer-implemented method, system and computer program product for displaying a user interface component | |
CN105512304B (zh) | 在线生成互联网应用方法和系统集成方法及支撑平台 | |
CN106528129A (zh) | 一种Web应用界面生成系统及方法 | |
CN103543993A (zh) | 应用程序构建方法和系统 | |
CN104503769B (zh) | 一种基于xml配置文件的字符点阵液晶界面实现方法 | |
CN106648587A (zh) | 一种基于注解的Web应用代码生成方法 | |
WO2010091623A1 (zh) | 应用程序界面动态生成装置及方法 | |
CN110069246A (zh) | 一种Java Web应用快速开发的平台系统及其应用 | |
CN101477462A (zh) | 一种用于动态改变系统行为的模型驱动软件开发方法 | |
CN102455931B (zh) | 一种Android平台工程的开发方法及系统 | |
CN106843862A (zh) | 一种Swing界面自动构成的方法 | |
US10120660B2 (en) | Systems and methods for producing launchers for a mobile terminal | |
CN104407863A (zh) | 抽象控件模型编程装置和方法 | |
CN100498698C (zh) | 通用界面设计接口系统及使用该系统的界面开发方法 | |
CN103176778B (zh) | 网页开发方法和装置 | |
CN101226479A (zh) | 一种实现手机菜单动态配置的方法 | |
CN105242931A (zh) | 对游戏界面编辑并生成代码的方法及系统 | |
CN102541566A (zh) | 半导体软件界面框架生成方法 | |
CN100449484C (zh) | 一种生成仿真设备面板的方法及系统 | |
CN104133676A (zh) | 一种基于脚本的功能执行方法和设备 | |
CN109542438A (zh) | 一种基于可视化的图表开发方法 | |
CN105302558A (zh) | 一种用于多客户端的内容展现系统及方法 | |
CN103810292A (zh) | 一种图形界面的配置方法及装置 | |
CN105487868B (zh) | 实现安卓设备虚拟按键隐藏和显示的方法和系统 | |
CN103049260A (zh) | 一种软件的用户界面在客户端的显示方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170613 |