未能找到 getChildren(),遵循 JavaFX WebKit 的官方 Oracle 指南
Failure to find getChildren(), following official Oracle guide to JavaFX WebKit
我完全按照 this Oracle guide 中的示例 3,并使用 Maven 进行编译。这是完整的代码(只有两个 类),以及我得到的错误。
package com.anon.example;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import com.anon.example.Browser;
public class Example extends Application
{
private Scene scene;
@Override public void start(Stage stage) throws Exception
{
stage.setTitle("WebKit Example");
scene = new Scene(new Browser(), 750, 500, Color.web("#666970"));
stage.setScene(scene);
stage.show();
}
public static void main(String[] args)
{
launch(args);
}
}
package com.anon.example;
import javafx.geometry.HPos;
import javafx.geometry.VPos;
import javafx.scene.Node;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Priority;
import javafx.scene.layout.Region;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
class Browser extends Region
{
final WebView browser = new WebView();
final WebEngine engine = browser.getEngine();
final String URL = "http://www.oracle.com/products/index.html";
public Browser()
{
getStyleClass().add("browser");
engine.load(URL);
getChildren.add(browser);
}
private Node createSpacer()
{
Region spacer = new Region();
HBox.setHgrow(spacer, Priority.ALWAYS);
return spacer;
}
@Override protected void layoutChildren()
{
double w = getWidth();
double h = getHeight();
layoutInArea(browser, 0, 0, w, h, 0, HPos.CENTER, VPos.CENTER);
}
@Override protected double computePrefWidth(double height)
{
return 750;
}
@Override protected double computePrefHeight(double width)
{
return 500;
}
}
Browser.java:[27,17] 找不到符号
[错误] 符号:变量 getChildren
我很难过 - getChildren() 应该从 Region 继承,而 Region 从 Parent 继承。 Google 没有找到答案。我知道该指南是为 JavaFX 2 编写的,但在这方面,API 8 的文档看起来没有什么不同。有什么想法吗?
应该是
getChildren().add(browser);
而不是
getChildren.add(browser);
我完全按照 this Oracle guide 中的示例 3,并使用 Maven 进行编译。这是完整的代码(只有两个 类),以及我得到的错误。
package com.anon.example;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import com.anon.example.Browser;
public class Example extends Application
{
private Scene scene;
@Override public void start(Stage stage) throws Exception
{
stage.setTitle("WebKit Example");
scene = new Scene(new Browser(), 750, 500, Color.web("#666970"));
stage.setScene(scene);
stage.show();
}
public static void main(String[] args)
{
launch(args);
}
}
package com.anon.example;
import javafx.geometry.HPos;
import javafx.geometry.VPos;
import javafx.scene.Node;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Priority;
import javafx.scene.layout.Region;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
class Browser extends Region
{
final WebView browser = new WebView();
final WebEngine engine = browser.getEngine();
final String URL = "http://www.oracle.com/products/index.html";
public Browser()
{
getStyleClass().add("browser");
engine.load(URL);
getChildren.add(browser);
}
private Node createSpacer()
{
Region spacer = new Region();
HBox.setHgrow(spacer, Priority.ALWAYS);
return spacer;
}
@Override protected void layoutChildren()
{
double w = getWidth();
double h = getHeight();
layoutInArea(browser, 0, 0, w, h, 0, HPos.CENTER, VPos.CENTER);
}
@Override protected double computePrefWidth(double height)
{
return 750;
}
@Override protected double computePrefHeight(double width)
{
return 500;
}
}
Browser.java:[27,17] 找不到符号 [错误] 符号:变量 getChildren
我很难过 - getChildren() 应该从 Region 继承,而 Region 从 Parent 继承。 Google 没有找到答案。我知道该指南是为 JavaFX 2 编写的,但在这方面,API 8 的文档看起来没有什么不同。有什么想法吗?
应该是
getChildren().add(browser);
而不是
getChildren.add(browser);