【发布时间】:2015-11-21 00:32:46
【问题描述】:
编辑: 如果用户单击“删除”以删除 ListView 中的项目,我会弹出一个警报框。它有效,但我希望它在原始阶段弹出。它出现在我的第一台显示器上。有没有办法设置警报显示时的位置?
注意,“所有者”属于不同的类,我使用 Scenebuilder/FXML 创建了所有内容。我无法弄清楚如何让 initOwner() 工作。这是“主要”类:
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class Assignment_5 extends Application {
public Stage primaryStage;
@Override
public void start(Stage primaryStage) throws Exception{
Parent root = FXMLLoader.load(getClass().getResource("Assignment_5.fxml"));
primaryStage.setTitle("Plant Pack");
primaryStage.setScene(new Scene(root, 1200, 500));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
这是 Controller 类中的工作代码。没有必要实现这个警报的模式,但它会是一个很好的补充,使它更方便。我根本不知道如何将主窗口从 Main 类传递给这个:
protected void handleDeleteButtonClick(ActionEvent event) {
Alert alertBox = new Alert(Alert.AlertType.CONFIRMATION, "Confirm Delete", ButtonType.OK, ButtonType.CANCEL);
alertBox.setContentText("Are you sure you want to delete this " + plantType.getValue().toString().toLowerCase() + "?");
alertBox.showAndWait();
if(alertBox.getResult() == ButtonType.OK) {
int selectedPlant = plantList.getSelectionModel().getSelectedIndex();
observablePlantList.remove(selectedPlant);
}
else {
alertBox.close();
}
}
我知道这是相当新的内容,因此很难找到很多资源。如果有人知道我可能错过的任何信息,请告诉我。感谢您提供的任何帮助。 我正在使用带有 IntelliJ 14.1.5 的 Java 8。
【问题讨论】:
-
jQueryUI 对话框与 JavaFX 对话框有什么相关性?
-
@jewelsea 我不知道。那是 JavaFX 问题中提供的链接。哈哈。我只是说,因为这个网站可能对重复的问题很挑剔。