2014-10-11 200 views
0

我有主類開始第一階段,我想通過button_info啓動另一個階段,我寫給另一個類的代碼。我不使用FXML,即使FMXL更好,也只是傳統的JavaFx。任何想法 ?謝謝。在類之間切換

mainclass

public class StartClass extends Application { 

    @Override 
    public void start(Stage primaryStage) { 


     /******************************* 
     * Incialization of variables *  
     *******************************/ 

     final Group group = new Group(); 
     final TransactionWindows tw = new TransactionWindows(); 
     final InfoWindow iw = new InfoWindow(); 
     /******************************* 
     *   Button    *  
     *******************************/ 
     final Button button_zacit = new Button(); 
     button_zacit.setText("Začít"); 
     button_zacit. setPrefHeight(30); 
     button_zacit.setPrefWidth(103); 
     button_zacit.setLayoutX(255); 
     button_zacit.setLayoutY(150); 
     group.getChildren().add(button_zacit); 

     final Button button_info = new Button(); 
     button_info.setText("Info"); 
     button_info. setPrefHeight(30); 
     button_info.setPrefWidth(103); 
     button_info.setLayoutX(255); 
     button_info.setLayoutY(217); 
     group.getChildren().add(button_info); 

     final Button button_konec = new Button(); 
     button_konec.setText("Konec"); 
     button_konec. setPrefHeight(30); 
     button_konec.setPrefWidth(103); 
     button_konec.setLayoutX(255); 
     button_konec.setLayoutY(285); 
     group.getChildren().add(button_konec); 

     /******************************* 
     *    Text   *  
     *******************************/ 

     final Text text_uvod = new Text(); 
     text_uvod.setText("Vítejte ve hře Guess Word"); 
     text_uvod.setLayoutX(78); 
     text_uvod.setLayoutY(57); 
     text_uvod.setTextAlignment(TextAlignment.CENTER); 
     text_uvod.setFont(new Font(30)); 
     group.getChildren().add(text_uvod); 

     /******************************* 
     *  Methods of Button  *  
     *******************************/ 
     button_konec.setOnAction(new EventHandler<ActionEvent>() { 

      @Override 
      public void handle(ActionEvent t) { 
       Platform.exit(); 
      } 

     }); 

     button_info.setOnAction(new EventHandler<ActionEvent>() { 

      @Override 
      public void handle(ActionEvent t) { 

       InfoWindow.launch(); 

      } 

     }); 


     Pane root = new Pane(); 
     root.getChildren().addAll(group); 

     Scene scene = new Scene(root, 600, 400); 
//  scene.getStylesheets().addAll("mainpackage/GW.css"); 
     primaryStage.setTitle("Hello World!"); 
     primaryStage.setScene(scene); 
     primaryStage.show(); 
    } 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
     launch(args); 
    } 

} 

類哪裏是另一個階段:

ublic class InfoWindow extends Application{ 



    @Override 
    public void start(Stage infoStage) throws Exception { 

     /******************************** 
     * Inicializaion of variables *  
     *******************************/ 
     Group groupInfo = new Group(); 



     /******************************* 
     *   TextArea   *  
     *******************************/ 
     TextArea textarea_info = new TextArea(); 
     textarea_info.setPrefHeight(241); 
     textarea_info.setPrefWidth(454); 
     textarea_info.setLayoutX(73); 
     textarea_info.setLayoutY(35); 
     textarea_info.setText("Text se bude brát ze složky"); 
     textarea_info.setEditable(false); 
     groupInfo.getChildren().add(textarea_info); 

     Pane root = new Pane(); 
     root.getChildren().addAll(groupInfo); 

     Scene scene = new Scene(root, 600, 400); 
     infoStage.setScene(scene); 
     infoStage.show(); 


    } 
} 

回答

0

所以,你想要的信息窗口的彈出窗口?

如果是這樣,那麼InfoWindow應該是Stage的子類而不是Application。

+0

請你能舉一些代碼的例子。由於 – user3770144 2014-10-11 08:49:41

+0

'公共類信息窗口擴展階段{ 公共信息窗口(){ //初始化階段(你的啓動方法的屍體放在這裏,沒有顯示() } }' 用法: '信息窗口信息窗口=新的信息窗口();' 當你想顯示它: 'infoWindow.show();' – galovics 2014-10-12 07:16:14