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类( Application和Stage )的导入当使用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 ...)的调用,并带有传递给它的命令行参数。 现在可以执行该应用程序,并显示如下屏幕快照所示。
翻译自: https://www.javacodegeeks.com/2012/08/hello-javafx-20-introduction-by-command.html