SWT Browser 渲染 HTML 页面内容若干问题的解决方案.doc
上传人:sy****28 上传时间:2024-09-13 格式:DOC 页数:13 大小:55KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

SWT Browser 渲染 HTML 页面内容若干问题的解决方案.doc

SWTBrowser渲染HTML页面内容若干问题的解决方案.doc

预览

免费试读已结束,剩余 3 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

SWTBrowser渲染HTML页面内容若干问题的解决方案SWTBrowser是EclipseSWT的标准部件,该部件植入了平台流行的HTML渲染引擎:在MicrosoftWindows平台上是IE,在Linux平台上是Mozilla,在AppleMac平台上是Safari。它提供了把HTML整合到Java平台的能力。在产品级别的软件中使用SWTBrowser来渲染定制的HTML内容,需要考虑更多的问题。首先是国际化问题,针对不同国家的语言包(Languagepackage),部件渲染相应的HTML内容。其次是Accessibility问题。Accessibility,经常被缩写为a11y,指的是软件产品的可访问性、易用性,特别是指对于诸如视力低下等残障人士的使用上的无障碍性。很多国家的法律条文规定,软件产品需要满足可访问性的要求。比如美国、欧洲、日本等国家都针对a11y立法,不符合a11y的软件程序很多都不在政府机关等的采购范围内。在本文中我们着重介绍HTML内容如何响应操作系统字体大小调整的这一可访问性问题。Java本身是夸平台的,在解决国际化和Accessibility两个问题的同时会涉及一些平台相关的问题,我们也需要技巧来解决。接下来,我们将详细的加以介绍,以飨读者。文章的组织结构如下:国际化问题及其解决方案Accessibility问题及其解决方案平台相关问题小结国际化问题及其解决方案国际化是创建适合于国际市场的软件的过程。除了经济利益之外,某些国家或地区要求产品在进入其市场之前通过政府设置的某些本地化要求。(国际化Eclipse平台的过程分两步完成:1)启用产品的本地语言支持(NationalLanguageSupport(NLS))确保了产品是为本地语言功能设计的,并且产品使用适当的API来处理本地语言数据。2)将本国语言元素翻译成外语。更详细的介绍请参考文献[3])在本文中,我们的国际化问题是指如何完成对SWTBrowser所渲染的HTML内容的多国语言翻译的支持。SWTBrowser部件提供了两种渲染Web页面的方法:setUrl方法和setText方法,如清单1所示。setUrl方法非常简单,只要传入URL地址参数,Browser就会渲染对应的HTML页面内容。对于setText方法,我们需要把HTML文本字符串内容作为参数传入,进而渲染HTML文本内容。清单1.Browser渲染HTML/**Browserexamplesnippet:renderHTMLthatincludesrelativelinksfrommemory*ForalistofallSWTexamplesnippetssee*http://www.eclipse.org/swt/snippets/*@since3.0*/publicclassSnippet137{publicstaticvoidmain(String[]args){/*Relativelinks:usetheHTMLbasetag*/Stringhtml=""+""+"HTMLTest"+"locallink";Displaydisplay=newDisplay();Shellshell=newShell(display);shell.setLayout(newFillLayout());Browserbrowser;try{browser=newBrowser(shell,SWT.NONE);}catch(SWTErrore){System.out.println("CouldnotinstantiateBrowser:"+e.getMessage());display.dispose();return;}browser.setText(html);browser.setUrl(“http://www.eclipse.org/swt”);shell.open();while(!shell.isDisposed()){if(!display.readAndDispatch())display.sleep();}display.dispose();}}在处理国际化多语言翻译这个问题上,如果采用setUrl方法渲染方法则需要为每一种语言提供一个HTML页面。那么程序的可维护性和灵活性就非常差,如果页面需要很小的变动,这些HTML页面都需要相应的更改。如果动态的生成HTML页面内容,应用set