2014-03-06 45 views
2

我想從另一個類中找到一種方法來訪問我的主JavaFx類中的階段,所以我可以對它執行一些操作,但是我不能,因爲它作爲參數傳遞像這樣:如何通過一個JavaFx初級階段

@Override 
public void start(final Stage primaryStage) { 

WakiliProject類全:

public class WakiliProject extends Application { 

    @Override 
    public void start(final Stage primaryStage) { 

     Group root = new Group(); 

     StageDraggable.stageDraggable(root, primaryStage); 

     root.getChildren().addAll(mainContainer); 
     Scene scene = new Scene(root, 900, 654); 
     primaryStage.setScene(scene); 

     primaryStage.initStyle(StageStyle.UNDECORATED); 
     primaryStage.initStyle(StageStyle.TRANSPARENT); 
     primaryStage.setTitle("Wakili"); 

     primaryStage.show(); 
    } 

    public static void main(String[] args) { 
     launch(args); 
    } 
} 

我如何能趕上從另一個類在上述階段primaryStage就像我在初始化階段'公共舞臺newTryEMail後做下面做一些動作;':

public class TryEMailController implements Initializable { 

    // Initializes the controller class. 
    @Override 
    public void initialize(URL url, ResourceBundle rb) { 
     // TODO 
    } 

    public Stage newTryEMail; 

    public void newTryEMailStage() throws IOException { 
     newTryEMail = new Stage(); 

     newTryEMail.initModality(Modality.WINDOW_MODAL); 
     newTryEMail.initOwner(AddNewEmailController.newComposeNewEmail); 

     Parent newTryEMailRoot = FXMLLoader.load(getClass().getResource("/wakiliproject/Forms/AddNew/NewEmail/TryEMailController.fxml")); 

     StageDraggable.stageDraggable(newTryEMailRoot, newTryEMail); 

     Scene newComposeNewEmailScene = new Scene(newTryEMailRoot, 590, 670); 

     newTryEMail.setScene(newComposeNewEmailScene); 
     newTryEMail.show(); 
    } 
} 

來自另一個類叫TryEMailController

謝謝大家提前。

回答

2

試試這樣說:

public void newTryEMailStage(Stage primaryStage) throws IOException { 
     newTryEMail = primaryStage; 

而且在啓動方法:

newTryEMailStage(primaryStage); 
1

您將primaryStage引用從start()方法傳遞給您想要訪問它的類。然後在類中存儲對要訪問的primaryStage對象的引用。如果在start()方法運行之前嘗試「捕獲」對primaryStage對象的引用,那麼我不知道要這樣做。所以相應地組織你的代碼。

+0

請你介意說明這一點。我試圖在另一個類中使用'primaryStage' – ILikeProgramming