[英]How to create dialog in JavaFX
我測試了如何在JavaFX中創建簡單對話框,但是由於某些原因,代碼無法正常工作:
MenuBar menuBar = new MenuBar();
// File menu - new, save, exit
Menu menu = new Menu("File");
menu.getItems().add(new MenuItem("New"));
menu.getItems().add(new MenuItem("Save"));
menu.getItems().add(new SeparatorMenuItem());
menuBar.getMenus().add(menu);
// Options menu - Preferences
Menu options = new Menu("Options");
options.getItems().add(new MenuItem("Preferences"));
menuBar.getMenus().add(options);
// Help menu - About
Menu help = new Menu("Help");
MenuItem about = new MenuItem("Exit");
about.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent e) {
Stage dialogStage = new Stage();
dialogStage.initModality(Modality.WINDOW_MODAL);
dialogStage.setScene(new Scene(VBoxBuilder.create().
children(new Text("Hi"), new Button("Ok.")).
alignment(Pos.CENTER).padding(new Insets(5)).build()));
dialogStage.show();
}
});
menuBar.getMenus().add(help);
menuBar.prefWidthProperty().bind(primaryStage.widthProperty());
root.getChildren().add(menuBar);
primaryStage.setScene(scene);
primaryStage.show();
我想在單擊About
菜單項時顯示帶有作者信息的簡單對話框窗口。 你能告訴我如何糾正我的錯誤嗎?
我將http://sourceforge.jp/projects/jfxmessagebox/wiki/JfxMessageBox用於我的消息框。 我希望這有幫助。
您可以嘗試我的自定義對話框。 訪問FXDialog公共存儲庫。
我也一直在尋找FX對話框功能。 在嘗試編寫自己的復雜對話框之前,我遇到了“救星” ControlsFX [here]( http://fxexperience.com/ )。 對我來說,這就像一個奇跡。 但是,您將必須完全升級到JDK8,以體驗ControlFX在FX8上的奇跡。 我相信每個人遲早都會使用JDK8。
幸運的是,我的原始代碼並沒有變得太復雜,以至於我無法進行這樣的轉換。 :)
希望這篇文章也能養活5000 JAVAer。 查看以下示例代碼如何工作:
Action response = Dialogs.create()
.owner( null)
.title("Confirmation")
.masthead("Are you sure to delete UserLevel: '"+ul.getLevelname()+"' ?")
.message(entry)
.showConfirm();
System.out.println("response: " + response);
if (response.toString().equals("YES")){
if(!Main.db.em.getTransaction().isActive())
Main.db.em.getTransaction().begin();
Main.db.em.remove(ul);
Main.db.em.getTransaction().commit();
tbvMain.getItems().remove(tbvMain.getSelectionModel().getSelectedIndex());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.