JavaFX刷新警报 [英] JavaFX refresh Alert
本文介绍了JavaFX刷新警报的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
你好我的应用程序有警报,在没有用户响应后我想刷新警报/再次显示它,由于某种原因我没有看到第二个警告它是空的,如:
Hello I have app with alert and after no response from user I want to refresh alert/show it again and for some reason I don't see second alert it's empty like:
我正在关闭警报,如果它显示,所以我不知道为什么下一个警报是空的。
包裹申请;
I am closing alert if it's showing so I don't know why next alert is empty. package application;
//imports
public class Main extends Application{
int number = 50;
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
alertMethod();
}
private void alertMethod() {
number += number + 10;
Alert alert = new Alert(Alert.AlertType.CONFIRMATION);
alert.setTitle("Title");
alert.setHeaderText("Number " + number);
alert.setContentText("Choose your option.");
ButtonType buttonTypeOne = new ButtonType("Yes");
ButtonType buttonTypeCancel = new ButtonType("No", ButtonBar.ButtonData.CANCEL_CLOSE);
alert.getButtonTypes().setAll(buttonTypeOne, buttonTypeCancel);
Thread newThread = new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(2000);
} catch (InterruptedException ex) {
Thread.currentThread().interrupt();
}
Platform.runLater(new Runnable() {
@Override
public void run() {
if(alert.isShowing()) {
alert.close();
}
alertMethod();
}
});
}
});
newThread.start();
Optional<ButtonType> result = alert.showAndWait();
if (result.get() == buttonTypeOne){
System.out.println("Pressed Yes");
} else if (result.get() == buttonTypeCancel) {
System.out.println("Pressed No");
}
}
}
推荐答案
这只是猜测我想你想要什么。你的问题不是很清楚。
此应用程序使用来自此处的@Sergey Grinev代码。
它每两秒更新警报
。
This is just a guess at what I think you want. Your problem is not very clear.
This app uses @Sergey Grinev code from here.
It updates the Alert
every two seconds.
//imports
import java.util.Optional;
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.application.Application;
import static javafx.application.Application.launch;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.control.Alert;
import javafx.scene.control.ButtonBar;
import javafx.scene.control.ButtonType;
import javafx.stage.Stage;
import javafx.util.Duration;
public class Main extends Application
{
int number = 50;
public static void main(String[] args)
{
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception
{
alertMethod();
}
private void alertMethod()
{
Alert alert = new Alert(Alert.AlertType.CONFIRMATION);
alert.setTitle("Title");
alert.setHeaderText("Number " + number);
alert.setContentText("Choose your option.");
ButtonType buttonTypeOne = new ButtonType("Yes");
ButtonType buttonTypeCancel = new ButtonType("No", ButtonBar.ButtonData.CANCEL_CLOSE);
alert.getButtonTypes().setAll(buttonTypeOne, buttonTypeCancel);
Timeline twoSecondsWonder = new Timeline(new KeyFrame(Duration.seconds(2), new EventHandler<ActionEvent>()
{
@Override
public void handle(ActionEvent event)
{
number = number + 10;
alert.setAlertType(Alert.AlertType.CONFIRMATION);
alert.setTitle("Title -> " + number);
alert.setHeaderText("Number " + number);
alert.setContentText("Choose your option.");
}
}));
twoSecondsWonder.setCycleCount(Timeline.INDEFINITE);
twoSecondsWonder.play();
Optional<ButtonType> result = alert.showAndWait();
if (result.get() == buttonTypeOne) {
System.out.println("Pressed Yes");
}
else if (result.get() == buttonTypeCancel) {
System.out.println("Pressed No");
}
}
}
这篇关于JavaFX刷新警报的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文