2017-06-21 19 views
0

考慮下面的代碼:了JavaFx對話框除去底部空間

public class Main extends Application { 
    public static void main(String[] args) throws Exception { 
     launch(args); 
    } 

    @Override 
    public void start(Stage stage) throws Exception { 
     final BorderPane p = new BorderPane(); 

     final Dialog dialog = new Dialog() { { 
      getDialogPane().setContent(new Button("TEXT")); 
     } }; 

     final Button bt = new Button("LAUNCH"); 
     bt.setOnAction(e -> dialog.show()); 

     p.setCenter(bt); 

     stage.setScene(new Scene(p)); 

     stage.show(); 
    } 
} 

結果是:

enter image description here

代碼被簡化例子。

問題在於底部有額外的空間。有什麼辦法可以刪除它嗎?謝謝。

回答

1

你可以這樣做:

@Override 
public void start(Stage stage) 
{ 
    final BorderPane p = new BorderPane(); 

    Stage dialog = new Stage(); 
    dialog.initModality(Modality.APPLICATION_MODAL); 
    dialog.setScene(new Scene(new Button("TEXT")));    

    final Button bt = new Button("LAUNCH"); 
    bt.setOnAction(e -> dialog.show()); 

    p.setCenter(bt); 

    stage.setScene(new Scene(p)); 

    stage.show(); 
} 

enter image description here

+1

這將顯示在任務欄另一個圖標。舞臺!=對話 – Mordechai

+0

是的,工作!謝謝! 我在回答之前試圖找到這種行爲的原因,但沒有成功。如果我們使用initStyle(StageStyle.UNDECORATED),底部空間消失,但​​我們也鬆動框架! – Dmitry