2013-03-22 34 views
0

以下是使用WebEngine對象的文件ClientArea.java(位於文件夾demoapp)。將WebEngine從一個.java文件引用到另一個

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

我怎樣才能讓這個參考?

回答

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 
+0

你可以用WebEngine展示一個例子嗎? – Perco 2013-03-22 16:23:23

+0

「WebEngine的例子」是什麼意思?上面的例子是「使用WebEngine」。實際上,你可以用這個技巧引用任何對象(屬於某個其他控制器)。 – Ramazan 2013-03-22 17:37:51

相關問題