2010-08-09 93 views

回答

2

它不是一个缺点/优势的情况,而是理解每个人可以提供什么,以及老话说“使用正确的工具来完成工作”。从雅虎

答案回答Source for this answer

的JavaFX实际上是不同的语言(类似,但不同的语法),但它运行在JVM上,可以使用Java类。主要针对“RIA”(富互联网应用)开发,适用于各种设备。不少内置功能用于开发华丽的用户界面,而不需要像Java那样使用更加坚固的低级语言来完成所有输入。

真的,“比较”有点难; JavaFX利用Java &的所有优势为其开发RIA构建了一个平台。

  • JavaFX需要一个JVM;但拥有Java并不意味着你拥有JavaFX。因此,JavaFX本质上并不属于Java的一部分。
  • 因此,任何不支持Java的平台都不支持JavaFX(即iPhone,iPad)。
  • 请注意,iPhone & iPad也不支持Flash,这是该领域的类似竞争对手。 (......也许的Flex或Silverlight是竞争的技术的更好的例子......)

来源(S):
Javafx wikiepdia
javafx at a glance
javafx homepage similar stackoverflow question

+1

“但只是拥有Java并不意味着你拥有JavaFX。” http://www.oracle.com/technetwork/java/javafx/overview/faq-1446554.html#5 – Advanced 2013-05-27 16:01:15

+0

@advanced“从JavaFX 2.2和Java SE 7 update 6开始,JavaFX库作为Java SE“。 – Trilarion 2014-07-23 10:42:54

13

,我认为你是什么询问构建JavaFX桌面应用程序与Java Swing桌面应用程序的优缺点是什么。有两个实验后,我可以指出一些区别:

的Java Swing

优点:

  • 更好的可视化设计器和IDE支持
  • 更全功能的控件集
  • 适用于在数据库顶部构建业务应用程序(如用户界面),而不需要超出标准(和第三方)控件的功能。

缺点

  • 可怜的多媒体支持
  • 大厦自定义控件或自定义皮肤是非常困难的
  • 没有动画支持
  • Java语法可尴尬构建UI。 IDE使得这个问题更少,但如果你需要手动执行任何操作,它会变得很难看。

JavaFX的

优点

  • 体面的多媒体支持
  • 轻松构建自定义控件,和所有现有的控制是使用CSS换肤功能(我没有尝试过的CSS尚未虽然) 。
  • 动画支持很好 - 不如flash好,但对于基本动画来说足够好。
  • 该语法似乎更适合构建用户界面,尤其是对手工编写用户界面 - 这很好,因为您需要手动编写代码。
  • 适用于需要自定义外观的多媒体应用程序或应用程序。

缺点

  • 可视化设计需要工作,我个人不使用它。这可能是一个很大的负面取决于您的需求。
  • 仍然缺乏一些控制,但是这个越来越好。确实存在的控制似乎运作良好。
  • Swing集成存在,但他们正在改变引擎,使其不再依赖Swing。 JavaFX中使用Swing控件在将来如何运作是不确定的。所以在可能的情况下,我不会避免在JavaFX中使用Swing控件。
3

JavaFX的改进速度更快,使用起来比Swing更好。

JavaFX是一个用于GUI的框架,具有多种优点,包括动画和CSS集成。这可以帮助您创建很多可以在CSS3中看到的2D和3D附件。

JavaFX是纯粹的Java,所以你不需要学习另一种语言,而不是你熟悉的老Java。 JavaFX是我最喜欢的用于桌面和企业的GUI平台,在处理旧的应用程序环境(即与硬件集成)时,我只使用Swing。我所知道的唯一缺点是场景构建器尚未集成,使用控件和API需要一些大脑工作,但这是次要的。

对我来说,Java桌面和JavaFX没有区别,因为JavaFX可以用来开发桌面应用程序,企业应用程序和小程序。您可以查看当前的JavaFX版本以检查其功能。

0

JTable类是另一个在AWT中没有等价物的Swing组件。 JTable提供了创建和显示表格的非常灵活的可能性。允许从数组或对象向量或实现TableModel接口的对象构建表。

JTableModel接口定义了指定表内容的对象的方法。该类提供了一个实现AbstractTableModel的JTableModel预定义接口。该类通常扩展为提供模型表的自定义实现。 JTable类提供了编辑表的功能。 setCellEditor()方法允许将接口的对象TableCellEditor标识为编辑器表格单元格。

import java.awt.*; 
import javax.swing.*; 
import javax.swing.table.*; 
public class JavaExampleTableInJApplet extends JApplet 
{ 
    Object[] Dt = new Object[5]; 
    DefaultTableModel DfltTblModl = new DefaultTableModel(); 
    JTable Tbl = new JTable(DfltTblModl); 
    public void init() 
    { 
     for(int clmn = 0; clmn < 5; clmn++) 
      { 
      DfltTblModl.addColumn("Column"+clmn); 
      } 
      for(int row = 0; row < 10; row++) 
      { 
        for(int clmn = 0; clmn < 5; clmn++) 
        { 
          Dt[clmn] = "Cell " + row + "," + clmn; 
         } 
          DfltTblModl.addRow(Dt); 
       } 
        getContentPane().add(new JScrollPane(Tbl)); 
     } 
    } 
相关问题