web-gelistirme-sc.com

JavaFX 2.1 MessageBox

İyi günler! 
JavaFX SDK kullanarak bir program geliştiriyorum. C # gibi bir mesaj kutusu olmasını istedim: 

DialogResult rs = MessageBox.showDialog("Message Here...");
if (rs == ....) {
    // code
}

JavaFX SDK kullanarak böyle bir fonksiyonelliğe sahip olmak istiyorum. Cevaplar çok takdir edilmektedir.

10
iSa

Güncelleme

Java8u40'tan itibaren çekirdek JavaFX kitaplıkları iletişim kutusu (mesaj kutusu) işlevselliğini içerir. Aşağıdaki sınıflar için belgelere bakın:

Orijinal Cevap

İşte bir Modal Onayla iletişim kutusu örneği. İletişim içeriğini içeren bir Sahne içeren bir Sahne Alanı oluşturarak ve ardından Sahne Alanı'nda show () işlevini çağırıp çalışır.

Ana işleme iş parçacığının yeni Aşama gösterilirken duraklatılmasını istiyorsanız ve JavaFX 2.2+ kullanıyorsanız, o zaman gösteri yerine Sahne Alanı'nda showAndWait () öğesini çağırabilirsiniz. Göster ve bekle ve sadece bir mesajı ve ok düğmesini gösterecek şekilde değiştirildiyse, işlem C # MessageBox ile aynı şekilde hareket etmelidir.

Java 8 için profesyonel görünümlü bir mesaj kutusu istiyorsanız, daha sonra blo0p3r'ın cevabında belirtilen JavaFX UI Controls Sandbox'taki diyalogların yinelenen/ ControlsFX kütüphanesi 'den gelen diyalog kutularını kullanmanızı öneririm.

6
jewelsea

https://docs.Oracle.com/javase/8/javafx/api/javafx/scene/control/Alert.html

Alert sınıfı, Dialog sınıfını alt sınıflar ve kullanıcılara bir yanıt için Sorması için kolayca gösterilebilecek bir dizi önceden oluşturulmuş iletişim türü için destek sağlar.

Yani kod bir şeye benziyor

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.");
    }
});
17

OSS ile JavaFX 2.2'deki MessageBox here

Sanırım sana yardım edecek.

MessageBox.show(primaryStage,
    "Message Body",
    "Message Title", 
    MessageBox.ICON_INFORMATION | MessageBox.OK | MessageBox.CANCEL);
4
Tosiki Iga

İşte başka bir basit alternatif: https://sites.google.com/site/martinbaeumer/programming/open-source/fxmessagebox

JavaFX 2.2'de hala standart bir mesaj kutusu bulunmamasını şaşırtıcı

3
Martin Baeumer

Bu, kullanmaya başladığım şeydi; JavaFX UI Kontrolleri Sandbox açıklandığı gibi burada FX Deneyimi: 

Bu Güzel ve kullanımı kolay bir iletişim kutusu. Kullandığım tek kişi olduğu için başkalarıyla kıyaslayamam. Bununla ilgili sorun yok.

Kod çok özlüdür. Buna benzer : 

//calling from a different controller and don't have the scene object loaded.
Stage stage = (Stage)deleteButton.getScene().getWindow();
DialogResponse response = Dialogs.showConfirmDialog(stage, "Are you sure ...", "Confirm deletion","Delete?", DialogOptions.OK_CANCEL);
if(response == DialogResponse.OK) {
    //...
}
2
blo0p3r

Ad alanını kullanın:

import javafx.scene.control.Alert;

Ana konudan aranıyor:

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();
}

Ana iplikten değil

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();
      }
    });
}
2
Andrei Krasutski

Bu çok basit bir örnek: Alert alert = new Alert (AlertType.CONFIRMATION, "Devam etmek istediğinizden emin misiniz?");

0
yasin

Şu anda bu kütüphaneyi Diyalogları göstermek için kullanıyorum. Belki sizin için yararlı olabilir:

https://github.com/4ntoine/JavaFxDialog

0
Perneel