JavaFX2.1消息框
你好JavaFX2.1消息框,java,javafx,javafx-2,Java,Javafx,Javafx 2,你好 我正在使用JavaFXSDK开发一个程序。我想要一个像C#那样的消息框: 我想使用JavaFXSDK实现这样的功能。非常感谢您的回答。更新 从Java8u40开始,核心JavaFX库包括对话框(消息框)功能。请参阅以下类别的文档: (和子类) 有关如何使用警报类的快速信息,请参阅此问题的其他答案: 有关更长的教程,请参阅(强烈建议使用本教程) 原始答案 下面是一个对话框示例。它的工作原理是创建一个包含对话框内容的场景的舞台,然后在场景上调用show() 如果您希望主处理线程在
我正在使用JavaFXSDK开发一个程序。我想要一个像C#那样的消息框:
我想使用JavaFXSDK实现这样的功能。非常感谢您的回答。更新 从Java8u40开始,核心JavaFX库包括对话框(消息框)功能。请参阅以下类别的文档:
- (和子类)
警报
类的快速信息,请参阅此问题的其他答案:
如果您希望Java 8具有专业外观的消息框,我建议使用中的对话框,这是blo0p3r回答中提到的JavaFX UI控件沙盒中对话框的后续迭代。目前我使用此库来显示对话框。也许它对你有用:
OSS提供的JavaFX2.2上的MessageBox是 我想这会对你有帮助
MessageBox.show(primaryStage,
"Message Body",
"Message Title",
MessageBox.ICON_INFORMATION | MessageBox.OK | MessageBox.CANCEL);
下面是另一个简单的选择:
令人惊讶的是,JavaFX2.2中仍然没有可用的标准消息框。这就是我最终使用的消息框,它是FX体验中宣布的消息框的一部分:
- 链接到教程:
- 链接到源代码:
//从其他控制器调用,但未加载场景对象。
Stage Stage=(Stage)deleteButton.getScene().getWindow();
DialogResponse response=Dialogs.showConfirmDialog(阶段“确定…”、“确认删除”、“删除?”、DialogOptions.OK\u取消);
if(response==DialogResponse.OK){
//...
}
Alert类是Dialog类的子类,并支持许多预构建的对话框类型,这些类型可以轻松显示给用户以提示响应
所以代码看起来像
Alert alert = new Alert(AlertType.INFORMATION);
alert.setTitle("Message Here...");
alert.setHeaderText("Look, an Information Dialog");
alert.setContentText("I have a great message for you!");
alert.showAndWait().ifPresent(rs -> {
if (rs == ButtonType.OK) {
System.out.println("Pressed OK.");
}
});
使用名称空间:
import javafx.scene.control.Alert;
从主线程调用:
public void showAlert() {
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setTitle("Message Here...");
alert.setHeaderText("Look, an Information Dialog");
alert.setContentText("I have a great message for you!");
alert.showAndWait();
}
public void showAlert() {
Platform.runLater(new Runnable() {
public void run() {
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setTitle("Message Here...");
alert.setHeaderText("Look, an Information Dialog");
alert.setContentText("I have a great message for you!");
alert.showAndWait();
}
});
}
从非主线程调用:
public void showAlert() {
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setTitle("Message Here...");
alert.setHeaderText("Look, an Information Dialog");
alert.setContentText("I have a great message for you!");
alert.showAndWait();
}
public void showAlert() {
Platform.runLater(new Runnable() {
public void run() {
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setTitle("Message Here...");
alert.setHeaderText("Look, an Information Dialog");
alert.setContentText("I have a great message for you!");
alert.showAndWait();
}
});
}
这是一个非常简单的例子:
Alert Alert=新警报(AlertType.CONFIRMATION,“您确定要继续吗?”) 我目前正在使用JavaFX2.1,而showAndWait()方法在stage类中不可用?当messagebox仍然显示时,如何暂停线程以读取下一行代码?!您不能直接使用2.1公共API,必须在回调事件处理程序中编写延续代码,如链接的示例代码所示。鉴于许可问题、专业性和可用性,此处链接的要点片段似乎是JavaFX2.x对话框的最佳选项。遗憾的是,ControlsFX根本无法在商业上使用,因为大多数公司都不能冒险要求客户/用户安装JRE8,直到Oracle正式发布(这篇文章发布至今已有多年)。