2013-06-07 2 views
0

У меня есть это очень простой модальный диалог:Как создать модальное диалоговое окно с изображением

public class DialogPanels 
{ 

    public void initClosemainAppDialog(final Stage primaryStage) 
    { 

     primaryStage.setOnCloseRequest(new EventHandler<WindowEvent>() 
     { 
      @Override 
      public void handle(WindowEvent event) 
      { 
       event.consume(); // Do nothing on close request 

       // Dialog Stage init 
       final Stage dialog = new Stage(); 
       // If you want to freeze the background during dialog appearence set Modality.APPLICATION_MODAL 
       // or to allow clicking on the mainstage components set Modality.NONE 
       // and set dialog.showAndWait(); 
       dialog.initModality(Modality.APPLICATION_MODAL); 
       dialog.initOwner(primaryStage); 

       // Frage - Label 
       Label label = new Label("Exit from the program"); 

       // Button "Yes" 
       Button okBtn = new Button("Yes"); 
       okBtn.setOnAction(new EventHandler<ActionEvent>() 
       { 
        @Override 
        public void handle(ActionEvent event) 
        { 
         //primaryStage.close(); 
         //dialog.close(); 
         //Platform.exit();  
         System.exit(0); 
        } 
       }); 

       // Button "No" 
       Button cancelBtn = new Button("No"); 
       cancelBtn.setOnAction(new EventHandler<ActionEvent>() 
       { 
        @Override 
        public void handle(ActionEvent event) 
        { 
         primaryStage.show(); 
         dialog.close(); 
        } 
       }); 

       // Layout for the Button 
       HBox hbox = new HBox(); 
       hbox.setSpacing(10); 
       hbox.setAlignment(Pos.CENTER); 
       hbox.getChildren().add(okBtn); 
       hbox.getChildren().add(cancelBtn); 

       // Layout for the Label and hBox 
       VBox vbox = new VBox(); 
       vbox.setAlignment(Pos.CENTER); 
       vbox.setSpacing(10); 
       vbox.getChildren().add(label); 
       vbox.getChildren().add(hbox); 

       // Stage 
       Scene scene = new Scene(vbox, 450, 150, Color.WHITESMOKE); 
       dialog.setScene(scene); 
       dialog.show(); 
      } 
     }); 

    } 
} 

Я хочу, чтобы добавить изображение и сделать его выглядеть следующим образом:

enter image description here

Но я admin, что это слишком сложно для моих коротких знаний, чтобы получить соответствующий результат. Можете ли вы показать мне, как я могу разделить диалог, добавить второй фон и сделать мой код похожим на этот пример?

ответ

2

Посмотрите на ControlsFX project, у них есть сложные диалоговые окна и это с открытым исходным кодом, поэтому вы можете посмотреть, как это делается. Например, ваш диалог выглядит этот диалог подтверждения о ControlsFX:

enter image description here

Существует также поддержка пользовательских диалоговых окон.

€ ДИТ: С опцией "шоу" Топовый позволило ему на самом деле выглядит точно так же, как это:

enter image description here

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