首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >什么是胶子警报的通用类型?

什么是胶子警报的通用类型?
EN

Stack Overflow用户
提问于 2018-10-03 19:12:09
回答 1查看 120关注 0票数 0

我浏览了一些文档这里这里,发现胶子对话框可以*有一个泛型类型,这将是调用showAndWait()时要返回的对象的泛型类型。但是胶子警报(com.gluonhq.charm.glisten.control.Alertcom.gluonhq.charm.glisten.control.Dialog的一个子类)似乎没有泛型类型,也不允许您给它泛型。

当我试图将setOnHidden调用为:

代码语言:javascript
运行
复制
boolean shown;
String report = "";
Alert al = new Alert(AlertType.ERROR);
al.setContentText(report);
al.setAutoHide(false);
al.setOnHidden(e->{
    shown = false;
});
shown = true;
al.showAndWait();

我在setOnHidden()调用中得到了以下警告:

方法setOnHidden(EventHandler)属于原始类型对话框。应该参数化对泛型类型对话框的引用。

任何关于胶子对话框的澄清或消除警告的方法都是最受欢迎的。

EN

回答 1

Stack Overflow用户

发布于 2018-10-03 20:01:11

与内置JavaFX Alert控件一样,胶子Alert控件的隐式类型是相同的: JavaFX内置ButtonType,因此如果单击OK按钮,它将返回ButtonType.OK

正如您在Alert JavaDoc上看到的那样,该控件有一个或两个默认按钮:一个用于所有这些按钮的OK按钮,以及一个用于确认警报的Cancel按钮。这些按钮的默认结果都是ButtonType.OKButtonType.CANCEL

因此,这对于两个Alert控件都有效:

代码语言:javascript
运行
复制
alert.showAndWait().ifPresent(result -> {
   if (result == ButtonType.OK) {
       // do something;
   }
});

使用“确定”和“取消”按钮,您将注意到一件事:警报将被解除,因此您不必这样做。

您还可以提供自定义按钮。那么您需要处理调用hide()的问题

代码语言:javascript
运行
复制
final Button myYesButton = new Button("Yes");
myYesButton.setOnAction(event -> {
    alert.setResult(ButtonType.YES);
    alert.hide();
});
alert.getButtons().add(myYesButton);

关于setOnHidden,见Javadoc。它需要一个LifecycleEvent

代码语言:javascript
运行
复制
alert.setOnHidden((LifecycleEvent event) -> System.out.println("alert hidden"));

但你可以用:

代码语言:javascript
运行
复制
alert.setOnHidden(event -> System.out.println("alert hidden"));

最后,确保您正在导入正确的控件:

代码语言:javascript
运行
复制
import com.gluonhq.charm.glisten.control.Alert;

...
Alert alert = new Alert(javafx.scene.control.Alert.AlertType.ERROR);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52634150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档