JavaFx——“三足鼎立”即将到来?

2008年,随着Adobe和微软等巨头的竞争加剧,Sun公司推出了JavaFX作为其RIA解决方案。本文介绍了JavaFX的功能及开发方式,并对其与Adobe、微软的产品进行了对比分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
2008年,RIA领域注定是风风火火,群雄争霸的一年,风景这边独好,一时间似乎所有人的视线都转向这里。
Adobe在大手笔收购自己的竞争对手Macromedia之后,整合和丰富了它的产品线,一举树立了RIA领域的霸主地位。其它巨头似乎也不甘寂寞,在微软推出Silverlight之后,今年5月6号的JavaOne大会,Sun公司副总裁Rich Green先生宣布了新的RIA领域的战略产品——JavaFX。这样使本来纷纷扰扰的局面更加热闹了。
JavaFx到底是什么玩意呢?简单的说它是Sun的RIA解决方案,利用它能够开发在支持Java(1.5以上)的PC和手机上运行的RIA软件。从下面的资料我们可以对它的功能效果和开发方式有一个初略的体验:
JavaFX效果体验:http://javafx.com/
用Eclipse开发JavaFX:
Sun开发者网络JavaFx部分:
Sun JavaFx技术一览:
    从客户端展现效果来讲效果相当不错,JavaFx优势应该在于它的完全开源以及和Java平台(客户端以及JSP服务器)的紧密关系。这方面来说应该可以吸引一批原来的Java开发者。对于想和JSP服务器交互以及想将原有Java项目迁移到RIA领域的人来说,JavaFx可能是一个不错的选择。
技术发展上看,JavaFx仍在探索的路上。JavaFX产品负责人Param Singh表示,对于JavaFx仍没有形成一个完整的技术发展路线图。而Adobe和MS在这方面已经有一个相对完整的技术体系了,这可能是JavaFx迫切需要解决的一个战略问题。
支持工具方面,JavaFx现在有Eclipse的JavaFx插件,但是和Adobe完美的设计工具以及MS强大的开发工具比,这方面JavaFx根本没有任何优势。
因特网视频传输处理方面似乎没有涉及,从Demo来看它在本地的影音播放借助的是QuickTime平台,程序运行平台和多媒体播放平台是分离的。而Flash的FlashPlayer是完全整合在一起的,相对而言Adobe的解决方案就要简洁优美的多。
综合来说,JavaFx还处于一个刚起步的阶段。开发者考虑的始终是项目的开发效率和产品的接收程度的问题,所以市场占有率才是王道,要想获得主流开发人员的关注,JavaFx的市场份额必须达到一定的程度。所以现在谈sliverlight、flash/flex、JavaFx的“三足鼎立”似乎为时上早。
但从历史上看,开源平台的生命力永远是不容忽视的,相信JavaFx会不断完善,最终形成足够的威慑力。至少JavaFx这个竞争者的介入会使Adobe不断进取,向开发者靠拢。Silverlight至今虽没有辉煌的战果,但至少直接或者间接的迫使Adobe开放了PDF以及Open Screen Project的诞生,那么对于JavaFx我们会有什么期待呢?
 
 
要在Java Swing中嵌入JavaFX绘制的折线图,可以使用JavaFX的Swing集成库(JavaFX Swing Integration Library)。 以下是实现的步骤: 1. 在Eclipse或NetBeans中创建一个JavaFX项目。 2. 创建一个JavaFX类来绘制折线图。例如,您可以使用LineChart类。 3. 在JavaFX类中创建一个方法,该方法将折线图导出为图像文件。 4. 将JavaFX类打包为JavaFX JAR文件。 5. 在Swing应用程序中使用JavaFX集成库加载JavaFX JAR文件。 6. 在Swing应用程序中创建一个JFXPanel组件,并将其添加到Swing界面中。 7. 在JFXPanel中加载JavaFX类并显示折线图。 以下是示例代码: ```java // JavaFX class to draw line chart public class LineChartFX extends Application { private LineChart<Number, Number> chart; private XYChart.Series<Number, Number> series; @Override public void start(Stage primaryStage) throws Exception { // create line chart NumberAxis xAxis = new NumberAxis(); NumberAxis yAxis = new NumberAxis(); chart = new LineChart<>(xAxis, yAxis); chart.setTitle("Line Chart"); // add series to chart series = new XYChart.Series<>(); series.setName("Data"); chart.getData().add(series); // create scene Scene scene = new Scene(chart, 400, 400); // export chart as image saveAsImage(); // show scene primaryStage.setScene(scene); primaryStage.show(); } private void saveAsImage() { // export chart as image WritableImage image = chart.snapshot(new SnapshotParameters(), null); File file = new File("linechart.png"); try { ImageIO.write(SwingFXUtils.fromFXImage(image, null), "png", file); } catch (IOException e) { e.printStackTrace(); } } } // Swing application to show line chart public class LineChartSwing extends JFrame { public LineChartSwing() { // load JavaFX JAR file JFXPanel fxPanel = new JFXPanel(); Platform.runLater(() -> { try { URL url = new File("linechart.jar").toURI().toURL(); URLClassLoader classLoader = new URLClassLoader(new URL[]{url}); Class<?> lineChartClass = classLoader.loadClass("LineChartFX"); Method startMethod = lineChartClass.getMethod("start", Stage.class); Stage stage = new Stage(); startMethod.invoke(lineChartClass.newInstance(), stage); } catch (Exception e) { e.printStackTrace(); } }); getContentPane().add(fxPanel); pack(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } public static void main(String[] args) { new LineChartSwing(); } } ``` 在此示例中,我们创建了一个JavaFX类LineChartFX,该类绘制折线图并将其导出为图像文件。然后,我们将JavaFX类打包为JAR文件,并在Swing应用程序中加载该JAR文件。最后,我们创建了一个JFXPanel组件,并将其添加到Swing界面中,以显示JavaFX类中绘制的折线图。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值