Hello JavaFX 2.0:命令行介绍

我从博客文章Hello JavaFX 2.0:NetBeans 7.1 beta的介绍中,NetBeans 7.1 beta的角度看了一个无处不在的Hello World示例的简单JavaFX版本。 在本文中,我将介绍仅使用命令行工具通过JavaFX实现的Hello World版本。
JavaFX 2.0 API文档包括javafx.application.Application类的类描述,这是一个很好的起点。 Application类的Javadoc文档提供了有效的类用法描述的示例。 此类描述描述了JavaFX应用程序的生命周期,甚至提供了代码示例以及显示示例呈现方式的图像。 我将在这篇文章中处理相同的示例。
Application类的Javadoc文档描述了该类的核心作用:“ JavaFX应用程序从其扩展的应用程序类。” start(Stage)方法是Application类中最有趣的方法,因为它是“所有JavaFX应用程序的主要入口点”。 它是一种抽象方法,因此必须通过扩展类来覆盖。 下一个代码清单显示了将编译但不执行任何操作的最小实现(它甚至没有main功能)。

HelloWorld.java(I:最小裸机)

package dustin.examples;

import javafx.application.Application;
import javafx.stage.Stage;

/**
 * Simple JavaFX Hello World example.
 * 
 * @author Dustin
 */
public class HelloWorld extends Application
{
   @Override
   public void start(final Stage stage) throws Exception
   {
      throw new UnsupportedOperationException("JavaFX example not supported yet.");
   }
}

上一个代码片段显示了两个JavaFX类( ApplicationStage )的导入当使用Javac编译以上代码而未将JavaFX库放在类路径上时,会发生类似于以下内容的错误。

HelloWorld.java:3: error: package javafx.application does not exist
import javafx.application.Application;
                         ^
HelloWorld.java:4: error: package javafx.stage does not exist
import javafx.stage.Stage;
                   ^
HelloWorld.java:11: error: cannot find symbol
public class HelloWorld extends Application
                                ^
  symbol: class Application
HelloWorld.java:14: error: cannot find symbol
   public void start(final Stage stage) throws Exception
                           ^
  symbol:   class Stage
  location: class HelloWorld
HelloWorld.java:13: error: method does not override or implement a method from a supertype
   @Override
   ^
5 errors

显而易见的解决方案是将apropos JavaFX库放在编译器的类路径上。 就我而言,构建此代码所需的JavaFX SDK和JAR是C:\ Program Files \ Oracle \ JavaFX 2.0 SDK \ rt \ lib \ jfxrt.jar

下一个代码清单建立在上一个代码片段的基础上,并改编自Application类的类级Javadoc文档中提供的示例。  

HelloWorld.java(II:改编自Application的Javadoc)

package dustin.examples;

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.shape.Circle;
import javafx.stage.Stage;

/**
 * Simple JavaFX Hello World example.
 * 
 * @author Dustin
 */
public class HelloWorld extends Application
{
   @Override
   public void start(final Stage stage) throws Exception
   {
      final Circle circ = new Circle(40, 40, 30);
      final Group root = new Group(circ);
      final Scene scene = new Scene(root, 400, 300);

      stage.setTitle("Hello JavaFX 2.0!");
      stage.setScene(scene);
      stage.show();
   }
}

上面显示的JavaFX应用程序可以部署到Web浏览器 ,但是我将重点放在从命令行运行它。 为此,将一个主要功能添加到JavaFX应用程序,如下一版本中所示。  

HelloWorld.java(III:添加了“ main”功能)

package dustin.examples;

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.shape.Circle;
import javafx.stage.Stage;

/**
 * Simple JavaFX Hello World example.
 * 
 * @author Dustin
 */
public class HelloWorld extends Application
{
   @Override
   public void start(final Stage stage) throws Exception
   {
      final Circle circ = new Circle(40, 40, 30);
      final Group root = new Group(circ);
      final Scene scene = new Scene(root, 400, 300);

      stage.setTitle("Hello JavaFX 2.0!");
      stage.setScene(scene);
      stage.show();
   }

   /**
    * Main function used to run JavaFX 2.0 example.
    * 
    * @param arguments Command-line arguments: none expected.
    */
   public static void main(final String[] arguments)
   {
      Application.launch(arguments);
   }
}

main功能中只需要一行。 该行是对静态方法Application.launch(String ...)的调用,并带有传递给它的命令行参数。 现在可以执行该应用程序,并显示如下屏幕快照所示。

结论
这篇博客文章演示了仅使用命令行工具编写和运行简单的JavaFX应用程序。 证明JavaFX 2.0已将“ Java”放回JavaFX中,本文中的示例已使用用于“常规” Java应用程序的典型Java编译器Java启动器进行编译和执行。 更复杂的JavaFX应用程序可能会从更特定的工具中受益,但是该工具仅使用标准Java工具进行编译和执行。

翻译自: https://www.javacodegeeks.com/2012/08/hello-javafx-20-introduction-by-command.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值