不可移动的警报窗口

时间:2017-07-25 15:24:06

标签: java javafx alert

我试图阻止用户移动弹出的提醒。我发现一个选项是将样式设置为UNDECORATED以删除他们点击以移动警报的边框,但我个人认为这看起来非常难看。

还有其他选择吗?

1 个答案:

答案 0 :(得分:3)

我建议使用StageStyle.UNDECORATED并添加您想要的任何装饰。

在这种情况下,没有系统装饰是好处。因为人们习惯于使用标准控件(关闭按钮,通过拖动标题移动等)并删除它们,所以您会清楚地表明您不希望此窗口可以移动。

小例子:

   Stage alert = new Stage(StageStyle.UNDECORATED);
   alert.initModality(Modality.APPLICATION_MODAL);
   VBox root = new VBox(30);
   root.setStyle("-fx-background-color: antiquewhite");
   root.setAlignment(Pos.CENTER);
   root.setPadding(new Insets(25));
   root.setBorder(new Border(new BorderStroke(Color.BLACK, 
        BorderStrokeStyle.SOLID, CornerRadii.EMPTY, BorderWidths.DEFAULT)));

   Button btn = new Button("Got it!");
   btn.setOnAction((e)-> {alert.close();});
   Label label = new Label("Alert!");
   label.setFont(Font.font("Verdana", 20));
   root.getChildren().addAll(label, btn);

   alert.setScene(new Scene(root, 200, 150));

,它为您提供下一个窗口:

enter image description here