2014-10-11 2 views
0

У меня есть основной класс, где начался первый этап, и я хочу запустить на button_info еще один этап, код которого я написал в другой класс. Я не использую FXML, просто классический JavaFx, даже если FMXL лучше. Есть идеи ? Благодарю.Переключение между классами

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 как всплывающее окно?

Если это так, то InfoWindow должен быть подклассом Stage, а не Application.

+0

Просьба привести пример кода. Благодаря – user3770144

+0

'общественный класс InfoWindow расширяет Stage { общественного InfoWindow() { // Инициализировать сцену (тело вашего метода пуска идет здесь, без шоу() } }' Использование: 'InfoWindow InfoWindow = новый InfoWindow(); ' Если вы хотите его показать: ' infoWindow.show(); ' – galovics

Смежные вопросы