0

这是使用 WebEngine 对象的文件ClientArea.java(位于文件夹demoapp中)。

public class ClientArea implements Initializable {
    public WebEngine engine;

    @Override
    public void initialize(URL url, ResourceBundle rb) {
        engine = browser.getEngine();
        engine.load("about:blank");
    }
}

我想将它引用到Undecorator.java位于文件夹 insidefx.undecorator中的另一个文件 ( )

我怎样才能做这个参考?

4

1 回答 1

1

我解决了类似的问题如下:在你加载fxml文件的地方,你可以得到控制器的任何元素,并提供它对另一个控制器的引用。

FXMLLoader fxmlLoader = new FXMLLoader();
fxmlLoader.setBuilderFactory(new JavaFXBuilderFactory());

fxmlLoader.setLocation(...); // set a URL for the ClientArea.fxml
try {
   fxmlLoader.load();
} catch (IOException ex) {
   ...
}
ClientArea cacontroller = (ClientArea) fxmlLoader.getController();

WebEngine engine = cacontroller.getEngine(); // add a getter method in ClientArea

fxmlLoader.setLocation(...); // set a URL for the Undecorator.fxml
try {
   fxmlLoader.load();
} catch (IOException ex) {
   ...
}
Undecorator ucontroller = (Undecorator) fxmlLoader.getController();
ucontroller.setEngine(engine); // add a setter method in Undecorator
于 2013-03-22T15:37:38.907 回答