使用Java SE 8u25无法在Eclipse中解析某些javafx类

时间:2015-01-18 16:00:40

标签: java eclipse javafx

我从Oracle安装了Java SE 8u25 JDK(64位),其中应该包含JavaFX。

我正在使用Win7 64位,Eclipse Helios并将jre包含在类路径中,如下所示: enter image description here

我正在尝试复制本教程中的代码: http://docs.oracle.com/javase/8/javafx/get-started-tutorial/hello_world.htm

Eclipse向我显示“在尝试使用javafx.scene.control.Button.setText(String)时,无法解析类型javafx.scene.control.Control。它是从所需的.class文件间接引用的”。 尝试创建StackPane对象时会出现类似的问题。

到目前为止,这是代码:

package javaFX;

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.control.Button;
import javafx.stage.Stage;

public class HelloWorld extends Application {

@Override
public void start(Stage primaryStage) throws Exception {

    Button btn = new Button();
    btn.setText("Hello world!");
    btn.setOnAction(new EventHandler<ActionEvent>(){

        @Override
        public void handle(ActionEvent arg0) {
            System.out.println("Hello world!");
        }

    });

    StackPane root = new StackPane();

}
}

Tl; dr:Java SE 8u25中似乎缺少一些JavaFX类,或者我在构建路径中包含jre时犯了一个错误。

2 个答案:

答案 0 :(得分:10)

注意:我已经看到您正在使用Eclipse Helios。您还可以下载最新版本的Eclipse Luna。这也可以。


您可以尝试 e(fx)clipse ,这在使用Eclipse开发FX应用时可能是一个有用的IDE扩展。为此,请按照以下步骤操作:

  1. 打开Eclipse并转到Help > Install New Software并在&#34;使用:&#34;下方插入网址http://download.eclipse.org/efxclipse/updates-released/1.1.0/site/。然后按Enter
  2. 加载软件包后,选择并安装它们
  3. 重启Eclipse后,您可以转到File > New > Other ...并选择JavaFX > JavaFX Project
  4. 还有一个步骤要做:通过转到项目属性并选择&#34;添加外部JAR ...&#34;将jfxrt.jar添加到类路径中。
    • Windows:C:\Program Files\Java\jdk1.8.0_25\jre\lib\ext
    • Mac OS:./Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home/jre/lib/ext/jfxrt.jar
  5. 准备制作可爱的JavaFX GUI!
  6. Working example.

    注意:e(fx)clipse为开发JavaFX应用程序提供了更多支持。随意看看。

答案 1 :(得分:1)

编辑

您尚未导入StackPane的类:

import javafx.scene.layout.StackPane;

上一个回答:

基本上你没有导入你的javafx库,你可以Add External JARs,并指出jfxrt.jar,它会正常工作。

在我的路径中,jfxrt.jar位于:

C:\Program Files\Java\jdk1.8.0_25\jre\lib\ext

有一种简单的方法,