实时转换java应用程序的可视化外观的设备和方法

文档序号:6554217阅读:205来源:国知局
专利名称:实时转换java应用程序的可视化外观的设备和方法
技术领域
与本发明一致的方法和设备涉及实时转换Java应用程序的可视化外观,更具体地说,涉及一种允许基于接口的Java应用程序通过将定义Java应用程序的可视化外观的新的接口添加到Java应用程序接口(API)来实时地转换组件的颜色组合、字体、图标、文本位置、以及外部外观的方法和设备。
背景技术
Java是作为跨平台的面向对象的编程语言。这里,平台指的是程序在其中被执行的硬件环境或诸如操作系统的软件环境。Java代码通过Java编译器被编译为Java字节码(byte code),Java字节码由Java虚拟机(其已经被集成到各种平台)来执行。
图1示出Java应用程序可在其中运行的传统系统。
该系统包括Java应用程序11、Java应用程序接口(API)12、Java虚拟机13、以及基于硬件的平台14。
Java应用程序11指的是以Java语言写成的程序,其通过使用Java编译器被编译为Java字节码,Java字节码由Java虚拟机解释,其后被执行。此时,Java虚拟机13作为关于Java字节码的解释器运行。
Java API 12为用于开发Java程序的集合的库或类;它们以在其中相互关联的类被捆绑的打包的单元而被提供。
Java应用程序11使用Java API 12以提供图形用户界面(下面称之为“GUI”),其中,Java API 12通过使用平台14的GUI来将图形输出到屏幕上。
用于提供GUI的Java API 12根据绘图模式(drawing mode)而被分类为重型(heavy-weight)API和轻型(light-weight)API。因为重型API按由基于平台的GUI提供的格式来写成GUI,所以其是依赖平台的。由于轻型API按开发者所期望的格式来写成GUI并将其发送到基于平台的GUI,所以其在其它平台上按相同的格式提供GUI。
这里,Java抽象窗口工具包是重型API,而Java Swing是轻型API。
图2示出通过传统Java抽象窗口工具包绘制组件的类的结构。
标签(Label)组件22是抽象窗口工具包的组件类21的扩展,其连接到LabelPeer类23以连接基于平台的GUI 24。LablePeer类23起到连接基于平台的GUI 24和Label组件22的作用。由于这样的构造,抽象窗口工具包提供依赖于平台的GUI。
图3示出通过传统的Java Swing绘制组件的类的结构。
Swing的标签组件是JLabel,JLabel组件33是JComponet类32的扩展。JComponent类32最终继承组件类31。JLabel组件33具有被称为Label UI的对象34,其绘制JLabel组件33,并且其不与基于平台的GUI连接。绘制组件的部分完全以Java实现,它们通过Java虚拟机35而被输出到屏幕上。
因此,无论平台如何,Swing组件都被输出到具有相同外观的屏幕上。
可视化外观(visual appearance)是输出到屏幕上的组件的可视化属性;它表示组件的颜色组合、字体和图标,以及文本的位置和外部外观。
如上所述,组件的外部外观根据平台而改变,并且由于抽象窗口工具包是依赖于平台的,所以无法进行实时转换。
然而,在Swing中,因为Swing是跨平台的,所以组件的外部外观不根据平台而改变。然而,将Swing应用于基于抽象窗口工具包而写成的程序会产生问题。
由于轻型API的结构限制,组件的可视化外观仅可应用于应用程序单元,而不能应用于在平台上运行的所有应用程序。

发明内容
本发明的一方面允许基于接口的Java应用程序通过将具有Java应用程序的定义的外观的接口添加到Java API来实时地改变外观。
通过浏览以下描述,本发明的此方面和其它方面、特点和优点将对本领域技术人员变得清楚。
根据本发明的一方面,提供一种用于实时地转换Java应用程序的可视化外观的设备,该设备包括命令接收单元,用于接收转换基于抽象窗口工具包产生的当前运行的Java应用程序的可视化外观的命令;接口管理单元,用于根据接收的命令来参照存储的可视化外观包,并通过通知Java应用程序的组件进行可视化外观转换来转换可视化外观;以及显示单元,用于将转换的可视化外观被应用到其的Java应用程序输出到屏幕上。
一种用于实时地转换Java应用程序的可视化外观的方法,该方法包括接收转换基于抽象窗口工具包产生的当前运行的Java应用程序的可视化外观的命令;根据接收的命令参照存储的可视化外观包,并通过通知Java应用程序的组件进行可视化外观转换来转换可视化外观;以及将转换的可视化外观被应用到其的Java应用程序输出到屏幕上。


通过下面结合附图对示例性实施例进行的描述,本发明的上述和其他方面、特点和优点将会变得清楚,其中图1示出传统的Java应用程序可在其中运行的系统;图2示出通过传统的Java抽象窗口工具包绘制组件的类的结构;图3示出使用传统的Java Swing绘制组件的类的结构;图4是示出根据本发明示例性实施例的用于在运行时间期间转换Java应用程序的可视化外观的设备的框图;图5是示出根据本发明示例性实施例的接口管理单元的框图;图6是示出根据本发明示例性实施例的Java应用程序的组件的皮肤(skin)被转换的过程的流程图;以及图7是示出根据本发明示例性实施例的Java应用程序的组件的主题被转换的过程的流程图。
具体实施例方式
参照示例性实施例的详细描述及附图,本发明的优点和特点以及实现本发明的方法将更容易理解。然而,本发明可按多种不同形式来实现,而不应理解为受限于在此阐释的实施例。此外,提供这些实施例以便该公开是彻底和完全的,并将全面地将本发明的构思传达给本领域技术人员,本发明仅由所附权利要求来定义。
将参照附图来详细描述本发明的示例性实施例。
图4是示出根据本发明示例性实施例的用于在运行时间转换Java应用程序的可视化外观的设备的框图。
虽然与抽象窗口工具包相比,Swing提供了更强健的图形功能,但由于Swing库必须存储在设备中,所以诸如电子家用电器这样的具有有限的存储器的装置主要具有基于抽象窗口工具包写成的图形用户接口。
根据本发明示例性实施例的设备指的是在其中使用抽象窗口工具包写成Java应用程序的图形用户界面的设备。然而,本领域普通技术人员将意识到,本发明不限于使用抽象窗口工具包来写成Java应用程序。
根据本发明实施例的设备包括接口管理单元410、命令接收单元420、控制单元430、以及显示单元440。
命令接收单元420接收转换当前运行的基于抽象窗口工具包的Java应用程序的可视化外观的命令。
可视化外观是诸如组件的颜色组合、字体和图标、文本的位置和外部外观的Java应用程序的可视化属性;例如窗口和按钮。
由用户输入的可视化外观转换命令被发送到控制单元430,控制单元430通过根据接收的命令参照存储的可视化外观包来指示接口管理单元410通知包括在Java应用程序中的组件进行可视化外观转换,其后执行可视化外观转换。
存储的可视化外观包指的是与主题和皮肤相关的类的捆绑,其包括使组件的外部外观具体化的皮肤包,以及通过读出与组件的颜色组合、字体和图标以及文本的位置相关的属性信息来形成主题的主题包。
运行中的Java应用程序将存储的可视化外观包应用到它的可视化外观,其后使用新存储的可视化外观包来转换可视化外观。
显示单元440输出转换的可视化外观被应用到其的Java应用程序,控制单元430通常控制命令接收单元420、接口管理单元410以及显示单元440。
图5是示出根据本发明示例性实施例的接口管理单元的框图。
接口管理单元410包括接口控制单元510、主题管理单元520以及皮肤管理单元530。
主题管理单元520使用从文件中读出的主题的属性信息根据包括在Java应用程序中的诸如组件的颜色组合、字体和图标、以及文本的位置来管理组件的属性。更具体地说,当设备初始化时,主题属性信息被加载和存储,该信息根据接口控制单元510的命令而实时地被修改,其后被重新存储。
皮肤管理单元530通过使用存储的皮肤包根据包括在Java应用程序中的组件的外部外观的属性来管理组件的皮肤属性。更具体地说,当设备初始化时,皮肤包的内容被加载和存储,根据来自接口控制单元510的命令,新注册的皮肤包的内容被实时地加载。
皮肤管理单元530确认由接口控制单元510请求的皮肤的存在,如果请求的皮肤存在,则将该皮肤发送到组件;如果不存在,则皮肤管理单元530创建新的皮肤,并将其发送到组件。
接口控制单元510根据来自控制单元430的命令,通过对主题管理单元520和皮肤管理单元530的一般控制来管理主题和皮肤的转换状态。当发生改变时,接口控制单元510通知Java应用程序的每一组件关于主题或皮肤的改变,并允许它们改变它们的外观。
图6是示出根据本发明示例性实施例的转换Java应用程序的组件的皮肤的过程的流程图。
当初始化设备时,主题管理单元520和皮肤管理单元530加载并存储主题的属性信息和皮肤包的内容。在步骤S610,如果命令接收单元420从用户接收到转换当前正在运行的Java应用程序的皮肤的命令,则接收的皮肤转换命令被发送到控制单元430,控制单元430促使接口管理单元410转换组件的皮肤。
在步骤S620,接口管理单元410的接口控制单元510通知组件进行皮肤转换,每一组件从皮肤管理单元530请求新的皮肤。因此,在步骤S630,皮肤管理单元530检查皮肤是否存在。如果请求的皮肤存在,则在步骤S650,皮肤管理单元530将其应用于组件。如果请求的皮肤不存在,则皮肤管理单元530在步骤S640创建新的皮肤,并在步骤S650将其应用于组件。
当Java应用程序初始化时,其在接口控制单元510中注册它的顶级窗口。当在Java应用程序运行的同时发出转换皮肤的命令时,接口控制单元510使用注册的顶级窗口来通知应用程序的每一组件进行皮肤转换。已被通知进行皮肤转换的每一组件向皮肤管理单元530请求转换的皮肤,并使用发送的皮肤来转换皮肤。
图7是示出根据本发明示例性实施例的转换Java应用程序的组件的主题的过程的流程图。
当初始化设备时,主题管理单元520和皮肤管理单元530加载并存储主题的属性信息和皮肤包的内容。在步骤S710,当命令接收单元420从用户接收到转换正在运行的Java应用程序的主题的命令时,接收的命令被发送到控制单元430,控制单元430促使接口管理单元410转换组件的主题。
在步骤S720,接口管理单元410的接口控制单元510通知组件进行主题转换,并在步骤S730检查使用主题属性的皮肤是否存在。如果皮肤存在,则在步骤S740,接口控制单元510通知进行有关的皮肤的主题转换。在步骤S750,皮肤管理单元530根据存储在主题管理单元520中的主题的内容使用新的主题来转换皮肤的主题。在步骤S760,当转换的主题被应用于组件时,组件的可视化外观被转换。
当Java应用程序初始化时,其在接口控制单元510中注册它的顶级窗口。在步骤S720,当在Java应用程序运行的同时发出转换主题的命令时,接口管理单元510通过使用注册的顶级窗口来通知应用程序的每一组件进行主题转换。在步骤S740,已经被通知进行主题转换的每一组件使用从主题管理单元520发送的主题来转换它的主题。
根据本发明,用于实时改变Java应用程序的可视化外观的设备和方法至少产生以下效果之一。
第一,Java应用程序的可视化外观通过其被定义的新的接口被添加到Java API,使用该接口的Java应用程序可实时地转换可视化外观。
第二,由于新的接口具有简化的结构,所以它可被添加到具有有限的资源的设备。
第三,由于主题从外部属性文件读出信息,所以Java应用程序可实时地改变主题属性,而不用改变代码。
第四,可通过依赖于系统的模块来实现皮肤,这样就提高了速度。
虽然已参照其示例性实施例示出和描述了本发明,但本领域技术人员应理解,在不脱离应当仅由所附权利要求的范围限定的本发明的精神和范围的情况下,可对其在形式和细节上进行上述和其它改变。因此,公开的本发明的示例性实施例仅用于普遍性和描述性的意义,而不是限制的目的。
权利要求
1.一种用于实时转换程序的可视化外观的设备,包括命令接收单元,用于接收转换当前运行的程序的可视化外观的命令;接口管理单元,用于根据接收的命令参照存储的可视化外观包,并通过通知程序的组件进行可视化外观转换来转换可视化外观;以及显示单元,用于将转换的可视化外观被应用到其的程序输出到屏幕上。
2.如权利要求1所述的设备,其中,可视化外观包括包括在程序中的组件的颜色组合、字体和图标,以及组件的文本的位置和外部外观的属性。
3.如权利要求1所述的设备,其中,可视化外观包至少包括以下之一主题属性信息,其具有包括在程序中的组件的颜色组合、字体和图标、以及组件的文本的位置的定义的属性;以及皮肤包,用于参照包括在程序中的组件的外部外观的属性。
4.如权利要求1所述的设备,其中,接口管理单元包括主题管理单元,用于至少管理组件的颜色组合、字体和图标、以及包括在程序中的组件的文本的位置和外部外观的属性之一;皮肤管理单元,用于管理包括在程序中的组件的外部外观的属性;以及接口控制单元,用于通过对皮肤管理单元和主题控制单元进行一般控制来管理组件的可视化外观转换。
5.如权利要求4所述的设备,其中,组件至少是继承了组件类的控制组件和容器组件之一。
6.如权利要求4所述的设备,其中,当根据接收的命令的皮肤没有在存储器中注册时,皮肤管理单元创建新的皮肤,并在存储器中注册所述新的皮肤。
7.如权利要求4所述的设备,其中,接口控制单元选择性地将主题管理单元或皮肤管理单元应用于当前运行的程序。
8.如权利要求4所述的设备,其中,当多个程序运行时,接口控制单元选择性地将可视化外观转换应用于至少一个程序。
9.如权利要求1所述的设备,其中,程序是抽象窗口工具包产物。
10.一种用于实时转换程序的可视化外观的方法,该方法包括以下步骤接收转换当前运行的程序的可视化外观的命令;根据接收的命令参照存储的可视化外观包,并通过通知程序的组件进行可视化外观转换来转换可视化外观;以及将转换的可视化外观被应用到其的程序输出到屏幕上。
11.如权利要求10所述的方法,其中,可视化外观包括包括在程序中的组件的颜色组合、字体和图标、以及组件的文本的位置和外部外观的属性。
12.如权利要求10所述的方法,其中,可视化外观包至少包括以下之一主题属性信息,其具有包括在程序中组件的颜色组合、字体和图标、以及的组件的文本的位置的定义的属性;以及皮肤包,用于参照包括在程序中的组件的外部外观的属性。
13.如权利要求10所述的方法,其中,转换可视化外观的步骤包括(a)至少管理组件的颜色组合、字体和图标、以及包括在程序中的组件的文本的位置的属性之一;(b)管理包括在程序中的组件的外部外观的属性;以及(c)通过对步骤(a)和步骤(b)的一般控制来管理组件的可视化外观转换。
14.如权利要求13所述的方法,其中,组件至少是继承了组件类的控制组件和容器组件之一。
15.如权利要求13所述的方法,其中,步骤(b)包括当根据接收的命令的皮肤没有在存储器中注册时,创建新的皮肤,并在存储器中注册所述新的皮肤。
16.如权利要求13所述的方法,其中,步骤(c)包括选择性地将步骤(a)或步骤(b)应用于当前运行的程序。
17.如权利要求13所述的方法,其中,步骤(c)包括当多个程序运行时,选择性的将可视化外观转换应用于至少一个程序。
全文摘要
一种用于实时转换程序的可视化外观的方法和设备,更具体地说,涉及一种用于通过将新的接口添加到定义程序的可视化外观的应用程序接口(API)而允许基于接口的程序实时转换组件的颜色组合、字体、图标和组件的文本的位置、以及组件的外部外观来实时转换程序的可视化外观的方法和设备。
文档编号G06F9/44GK1811703SQ200610002778
公开日2006年8月2日 申请日期2006年1月25日 优先权日2005年1月25日
发明者朴相丁 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1