我从Oracle安装了Java SE 8u25 JDK(64位),其中应该包含JavaFX。
我正在使用Win7 64位,Eclipse Helios并将jre包含在类路径中,如下所示:
我正在尝试复制本教程中的代码: 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时犯了一个错误。
答案 0 :(得分:10)
注意:我已经看到您正在使用Eclipse Helios。您还可以下载最新版本的Eclipse Luna。这也可以。
您可以尝试 e(fx)clipse ,这在使用Eclipse开发FX应用时可能是一个有用的IDE扩展。为此,请按照以下步骤操作:
Help > Install New Software
并在&#34;使用:&#34;下方插入网址http://download.eclipse.org/efxclipse/updates-released/1.1.0/site/
。然后按Enter File > New > Other ...
并选择JavaFX > JavaFX Project
jfxrt.jar
添加到类路径中。
C:\Program Files\Java\jdk1.8.0_25\jre\lib\ext
./Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home/jre/lib/ext/jfxrt.jar
。
注意: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
有一种简单的方法,