我试图阻止用户移动弹出的提醒。我发现一个选项是将样式设置为UNDECORATED
以删除他们点击以移动警报的边框,但我个人认为这看起来非常难看。
还有其他选择吗?
答案 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));
,它为您提供下一个窗口: