2013-03-25 10 views
8

Ben JavaFX bir popup için sahibinin pencereyi engellemek istiyoruz.Sahibi engelle penceresi Java FX

Bu gibi benim pop-up başlatmak: Bununla

popUp = new Popup(); 
popUp.getContent().add(content); 
popUp.show(pane.getScene().getWindow()); 

, hala ilk pencere (bölme pencere) çalışabilirler. Bu işlemi devre dışı bırakmak istiyorum ve kullanıcının pop-up'ta çalışmasını istiyorum.

Bu nasıl yapmalı?

Teşekkürler.

cevap

14

kullanın yerine Popup bir Stage.

Sahneyi göstermeden önce, stage.initModality'u uygun şekilde APPLICATION_MODAL veya WINDOW_MODAL olarak çağırın. Ayrıca, WINDOW_MODAL davası için uygun şekilde engelleyecek şekilde stage.initOwner yeni aşamanızın ana penceresine de çağırabilirsiniz.

Stage stage = new Stage(); 
stage.initModality(Modality.WINDOW_MODAL); 
stage.initOwner(pane.getScene().getWindow()); 
stage.setScene(new Scene(content)); 
stage.show(); 
+0

Tam ihtiyacım olan bu. Teşekkürler. – Kiva

1

sayesinde optimal çözüm: FXML yük dosyası ile örnek:

@Override 
    public void start(Stage primaryStage) throws IOException { 
     Parent root = FXMLLoader.load(getClass().getResource("DialogView.fxml")); 
     primaryStage.initModality(Modality.APPLICATION_MODAL); // 1 Add one 
     Scene scene = new Scene(root);   
     primaryStage.setScene(scene); 
     primaryStage.initOwner(primaryStage.getScene().getWindow());// 2 Add two 
     primaryStage.show(); 

    } 

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

    }