SUN发布JavaFX...

Sun公司在2008年的JavaOne开发者大会上发布了JavaFX系列产品,旨在构建富互联网应用程序。JavaFX基于Java平台,包括运行环境和工具套件,支持桌面、移动及电视应用开发。Sun面临Adobe AIR和Microsoft Silverlight的竞争,需克服兼容性和资金挑战。

在RIA开发平台领域,Adobe公司的Flex、Microsoft的Silverlight、Sun的JavaFX竞争非常激烈。“Java + You”(Java与你)为主题的第13届JavaOne开发者大会5月6号在美国旧金山举行。5月9号,星期二的时候Sun 公司揭开了JavaFX家族新的产品,来更好的构建富互联网应用程序。

JavaFX是基于Sun的Java平台,包括一个运行环境和一个工具套件。Web设计者和开发者能够使用该工具套件来构建和交付具有丰富交互性的应用程序,这些应用程序可以是桌面的,还可以为移动设备、TV、或者其它的设备设计应用程序。JavaFX Desktop产品应用于桌面开发,在今年的秋天发布;JavaFX Mobile在2009年春天交付;JavaFX TV在2009年夏天揭开面纱。 
Rich Green,Sun主管软件事务的执行副总裁在JavaOne开发者大会上说:“Java技术已经发展成为最为强大、可升级、安全性高的开发平台,可广泛的应用于企业和移动应用程序的开发。现在,Java平台已经为那些极具创造性的观众做好了准备,这些观众对富互联网应用程序的内容具有极大的需求。这些观众不仅包括编程人员、社交生活应用程序的设计人员、设计师、内容创作人员,还包括消费者。” 

JavaFX工具套件 

JavaFX工具套件(Sun JavaFX Tools Suite)专门为开发者而设计,给开发着提供自由的空间,来创造表现力丰富的内容、应用程序。 

举个例子,JavaFX Development Tools包括一个为NetBean集成开发环境准备的插件,几个为Eclipse准备的插件,其它的Java集成开发环境插件将会在未来发布。JavaFX Media Converter能将丰富的媒体内容直接输出到JavaFX中,它将在今年的夏天与开发者见面。 

对于那些急不可待的开发者来说,在今年夏天Sun公司将会发布一个JavaFX运行环境的早期入门版本,这个版本属于浏览器和桌面型的应用程序,与之一起发布的还有一个Web站点和征求反馈的论坛。

Sun面临的可预见性的挑战

Laura DiDio,Yankee Group的一位分析师告诉LinuxInsider说:“在这个领域存在着Adobe的AIR和Microsoft的Silverlight这些产品,JavaFX将会面临着这些产品的挑战。” 

她解释道:“Sun能经常给IT界带来非常好的技术,但是他们要面对的是Adobe和Silverlight,Adobe公司的产品已经形成,Silverlight也会在这个市场分得一大杯羹,Sun所遇到的挑战清晰可见,他们最大的挑战就是让那些将JavaFX作为第三或者第四选择的用户吸引过来,让他们尝试使用。” 

DiDio接着说:“Sun以Java平台最为根基,已经有一定的用户基础,但是,要想把产品流行起来,必须要吸引大家的注意力,把那写没有安装Java平台的人吸引过来。”
Sun面临的可能性资金问题 

Rob Enderle ,Enderle Group 的主席和首席分析师同意Java用户是非常忠诚的,但是Adobe和Microsoft在该领域的产品已经投放了大量的资金,这个平台这个平台也是他们的公司重要战略之一。 

Enderle告诉LinuxInsider说:“另一方面来看,Sun的JavaFX技术出炉有些过晚,并且Sun公司明显有一些资金问题,这些意味着他们可能没有足够的资金,使得JavaFX技术达到所需要的水平。” 

DiDio接着说:“Sun公司要解决的关键问题是应用程序、运行环境、驱动等之间的互用性和兼容性。他们可不想变为微软Vista那样的境况,Vista已经被认为是一个坏的产品,因为它和许多的应用程序不兼容。”

 

java.lang.NullPointerException: Cannot invoke "com.sun.prism.d3d.D3DTextureData.getContext()" because the return value of "com.sun.prism.d3d.D3DTextureResource.getResource()" is null at javafx.graphics@24.0.1/com.sun.prism.d3d.D3DTexture.getContext(D3DTexture.java:85) at javafx.graphics@24.0.1/com.sun.prism.d3d.D3DTexture.update(D3DTexture.java:210) at javafx.graphics@24.0.1/com.sun.prism.d3d.D3DTexture.update(D3DTexture.java:154) at javafx.graphics@24.0.1/com.sun.prism.impl.BaseContext.flushMask(BaseContext.java:115) at javafx.graphics@24.0.1/com.sun.prism.impl.BaseContext.drawQuads(BaseContext.java:124) at javafx.graphics@24.0.1/com.sun.prism.impl.VertexBuffer.flush(VertexBuffer.java:98) at javafx.graphics@24.0.1/com.sun.prism.impl.BaseContext.flushVertexBuffer(BaseContext.java:107) at javafx.graphics@24.0.1/com.sun.prism.impl.ps.BaseShaderContext.checkState(BaseShaderContext.java:683) at javafx.graphics@24.0.1/com.sun.prism.impl.ps.BaseShaderContext.validateTextureOp(BaseShaderContext.java:612) at javafx.graphics@24.0.1/com.sun.prism.impl.ps.BaseShaderContext.validateTextureOp(BaseShaderContext.java:523) at javafx.graphics@24.0.1/com.sun.prism.impl.BaseGraphics.drawTexture(BaseGraphics.java:472) at javafx.graphics@24.0.1/com.sun.prism.impl.ps.BaseShaderGraphics.drawTexture(BaseShaderGraphics.java:159) at javafx.graphics@24.0.1/com.sun.javafx.sg.prism.NGImageView.renderContent(NGImageView.java:123) at javafx.graphics@24.0.1/com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2063) at javafx.graphics@24.0.1/com.sun.javafx.sg.prism.NGImageView.doRender(NGImageView.java:103) at javafx.graphics@24.0.1/com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1955) at javafx.graphics@24.0.1/com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:266) at javafx.graphics@24.0.1/com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:579) at javafx.graphics@24.0.1/com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2063) at javafx.graphics@24.0.1/com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1955) at javafx.graphics@24.0.1/com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:266) at javafx.graphics@24.0.1/com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:579) at javafx.graphics@24.0.1/com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2063) at javafx.graphics@24.0.1/com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1955) at javafx.graphics@24.0.1/com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:266) at javafx.graphics@24.0.1/com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:579) at javafx.graphics@24.0.1/com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2063) at javafx.graphics@24.0.1/com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1955) at javafx.graphics@24.0.1/com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:266) at javafx.graphics@24.0.1/com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:579) at javafx.graphics@24.0.1/com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2063) at javafx.graphics@24.0.1/com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1955) at javafx.graphics@24.0.1/com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:266) at javafx.graphics@24.0.1/com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:579) at javafx.graphics@24.0.1/com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2063) at javafx.graphics@24.0.1/com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1955) at javafx.graphics@24.0.1/com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:266) at javafx.graphics@24.0.1/com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:579) at javafx.graphics@24.0.1/com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2063) at javafx.graphics@24.0.1/com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1955) at javafx.graphics@24.0.1/com.sun.javafx.tk.quantum.ViewPainter.doPaint(ViewPainter.java:481) at javafx.graphics@24.0.1/com.sun.javafx.tk.quantum.ViewPainter.paintImpl(ViewPainter.java:329) at javafx.graphics@24.0.1/com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.java:92) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:545) at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:369) at javafx.graphics@24.0.1/com.sun.javafx.tk.RenderJob.run(RenderJob.java:58) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1095) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:619) at javafx.graphics@24.0.1/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:122) at java.base/java.lang.Thread.run(Thread.java:1447) java.lang.NullPointerException: Cannot invoke "com.sun.prism.d3d.D3DTextureData.getContext()" because the return value of "com.sun.prism.d3d.D3DTextureResource.getResource()" is null at javafx.graphics@24.0.1/com.sun.prism.d3d.D3DTexture.getContext(D3DTexture.java:85) at javafx.graphics@24.0.1/com.sun.prism.d3d.D3DTexture.update(D3DTexture.java:210) at javafx.graphics@24.0.1/com.sun.prism.d3d.D3DTexture.update(D3DTexture.java:154) at javafx.graphics@24.0.1/com.sun.prism.impl.BaseContext.flushMask(BaseContext.java:115) at javafx.graphics@24.0.1/com.sun.prism.impl.BaseContext.drawQuads(BaseContext.java:124) at javafx.graphics@24.0.1/com.sun.prism.impl.VertexBuffer.flush(VertexBuffer.java:98) at javafx.graphics@24.0.1/com.sun.prism.impl.BaseContext.flushVertexBuffer(BaseContext.java:107) at javafx.graphics@24.0.1/com.sun.prism.impl.ps.BaseShaderContext.setRenderTarget(BaseShaderContext.java:789) at javafx.graphics@24.0.1/com.sun.prism.impl.BaseContext.setRenderTarget(BaseContext.java:149) at javafx.graphics@24.0.1/com.sun.prism.impl.BaseGraphics.<init>(BaseGraphics.java:107) at javafx.graphics@24.0.1/com.sun.prism.impl.ps.BaseShaderGraphics.<init>(BaseShaderGraphics.java:84) at javafx.graphics@24.0.1/com.sun.prism.d3d.D3DGraphics.<init>(D3DGraphics.java:40) at javafx.graphics@24.0.1/com.sun.prism.d3d.D3DGraphics.create(D3DGraphics.java:63) at javafx.graphics@24.0.1/com.sun.prism.d3d.D3DSwapChain.createGraphics(D3DSwapChain.java:148) at javafx.graphics@24.0.1/com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.java:88) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:545) at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:369) at javafx.graphics@24.0.1/com.sun.javafx.tk.RenderJob.run(RenderJob.java:58) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1095) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:619) at javafx.graphics@24.0.1/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:122) at java.base/java.lang.Thread.run(Thread.java:1447) java.lang.NullPointerException: Cannot invoke "com.sun.prism.d3d.D3DTextureData.getContext()" because the return value of "com.sun.prism.d3d.D3DTextureResource.getResource()" is null at javafx.graphics@24.0.1/com.sun.prism.d3d.D3DTexture.getContext(D3DTexture.java:85) at javafx.graphics@24.0.1/com.sun.prism.d3d.D3DTexture.update(D3DTexture.java:210) at javafx.graphics@24.0.1/com.sun.prism.d3d.D3DTexture.update(D3DTexture.java:154) at javafx.graphics@24.0.1/com.sun.prism.impl.BaseContext.flushMask(BaseContext.java:115) at javafx.graphics@24.0.1/com.sun.prism.impl.BaseContext.drawQuads(BaseContext.java:124) at javafx.graphics@24.0.1/com.sun.prism.impl.VertexBuffer.flush(VertexBuffer.java:98) at javafx.graphics@24.0.1/com.sun.prism.impl.BaseContext.flushVertexBuffer(BaseContext.java:107) at javafx.graphics@24.0.1/com.sun.prism.impl.ps.BaseShaderContext.setRenderTarget(BaseShaderContext.java:789) at javafx.graphics@24.0.1/com.sun.prism.impl.BaseContext.setRenderTarget(BaseContext.java:149) at javafx.graphics@24.0.1/com.sun.prism.impl.BaseGraphics.<init>(BaseGraphics.java:107) at javafx.graphics@24.0.1/com.sun.prism.impl.ps.BaseShaderGraphics.<init>(BaseShaderGraphics.java:84) at javafx.graphics@24.0.1/com.sun.prism.d3d.D3DGraphics.<init>(D3DGraphics.java:40) at javafx.graphics@24.0.1/com.sun.prism.d3d.D3DGraphics.create(D3DGraphics.java:63) at javafx.graphics@24.0.1/com.sun.prism.d3d.D3DRTTexture.createGraphics(D3DRTTexture.java:80) at javafx.graphics@24.0.1/com.sun.prism.d3d.D3DResourceFactory.createRTTexture(D3DResourceFactory.java:360) at javafx.graphics@24.0.1/com.sun.prism.d3d.D3DResourceFactory.createPresentable(D3DResourceFactory.java:379) at javafx.graphics@24.0.1/com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.java:81) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:545) at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:369) at javafx.graphics@24.0.1/com.sun.javafx.tk.RenderJob.run(RenderJob.java:58) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1095) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:619) at javafx.graphics@24.0.1/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:122) at java.base/java.lang.Thread.run(Thread.java:1447) 中文
最新发布
05-14
java.lang.IllegalStateException: null at com.teamdev.jxbrowser.deps.com.google.common.base.Preconditions.checkState(Preconditions.java:494) ~[jxbrowser-7.22.jar:?] at com.teamdev.jxbrowser.internal.CloseableImpl.checkNotClosed(CloseableImpl.java:35) ~[jxbrowser-7.22.jar:?] at com.teamdev.jxbrowser.browser.internal.DragAndDrop.isEnabled(DragAndDrop.java:38) ~[jxbrowser-7.22.jar:?] at com.teamdev.jxbrowser.view.javafx.internal.OffScreenRenderWidget.isDragAndDropEnabled(OffScreenRenderWidget.java:303) ~[jxbrowser-javafx-7.22.jar:?] at com.teamdev.jxbrowser.view.javafx.internal.OffScreenRenderWidget.show(OffScreenRenderWidget.java:320) ~[jxbrowser-javafx-7.22.jar:?] at com.teamdev.jxbrowser.view.javafx.internal.IoSurfaceRenderWidget.show(IoSurfaceRenderWidget.java:83) ~[jxbrowser-javafx-7.22.jar:?] at com.teamdev.jxbrowser.view.javafx.internal.OffScreenRenderWidget.showIfVisible(OffScreenRenderWidget.java:315) ~[jxbrowser-javafx-7.22.jar:?] at com.teamdev.jxbrowser.view.javafx.internal.OffScreenRenderWidget.setWindow(OffScreenRenderWidget.java:241) ~[jxbrowser-javafx-7.22.jar:?] at com.teamdev.jxbrowser.view.javafx.internal.OffScreenRenderWidget.access$2100(OffScreenRenderWidget.java:77) ~[jxbrowser-javafx-7.22.jar:?] at com.teamdev.jxbrowser.view.javafx.internal.OffScreenRenderWidget$SceneChangeListener.setScene(OffScreenRenderWidget.java:626) ~[jxbrowser-javafx-7.22.jar:?] at com.teamdev.jxbrowser.view.javafx.internal.OffScreenRenderWidget$SceneChangeListener.lambda$changed$0(OffScreenRenderWidget.java:615) ~[jxbrowser-javafx-7.22.jar:?] at com.sun.javafx.application.PlatformImpl.lambda$null$172(PlatformImpl.java:295) ~[jfxrt.jar:?] at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_191] at com.sun.javafx.application.PlatformImpl.lambda$runLater$173(PlatformImpl.java:294) ~[jfxrt.jar:?] at com.sun.glass.ui.InvokeLaterDispatcher$Future.run$$$capture(InvokeLaterDispatcher.java:95) ~[jfxrt.jar:?] at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java) ~[jfxrt.jar:?]
03-28
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值