यह पृष्ठ पुर्तगाली से मशीन-अनुवादित है और इसमें त्रुटियाँ हो सकती हैं। पुर्तगाली संस्करण प्रामाणिक है।
डायलॉग और मोडल
डायलॉग वर्तमान स्क्रीन के ऊपर ढेर की गई पॉपअप विंडो हैं। CrossFly में तीन मुख्य हैं
Alert (पुष्टि), ActionSheet (क्रियाओं की सूची) और Hint (क्षणिक सूचना, पुराना “Toast”)।
⚠️ Alert/ActionSheet बटनों से जवाब देते हैं, onAnswer से नहीं
ये Window को विस्तारित करते हैं (Picker को नहीं), इसलिए show(callback) कोई मान नहीं लौटाता। उपयोगकर्ता की
पसंद बटन के कॉलबैक (buttonAction) से आती है। (देखें मान लौटाना।)
पूर्ण उदाहरण (कॉपी करें, पेस्ट करें और चलाएँ)
package com.exemplo;
import dev.crossfly.ui.*;
import dev.crossfly.ui.layout.*;
import dev.crossfly.ui.style.*;
/** चलाने योग्य मुख्य स्क्रीन। launcher (classname) की ओर संकेत करें और चलाएँ: gradlew :lwjgl3:run */
public class MainWindow extends Window
{
@Override
public void onShow() throws Exception
{
super.onShow();
setLayout(new VerticalLayout());
// Alert — कंस्ट्रक्टर में बटन (0 = Cancelar, 1 = Excluir); क्रिया इंडेक्स द्वारा।
Button excluir = new Button("Excluir item");
excluir.onAction(c -> {
Alert a = new Alert("Excluir", "Confirma a exclusão deste item?", "Cancelar", "Excluir");
a.buttonAction(1, x -> Hint.show("Item excluído", 2000)); // Cancelar (0) सिर्फ बंद करता है
// popup: WindowStyle फ़्लुएंट द्वारा आकार देता और पृष्ठभूमि गहरी करता है
a.getStyle().widthRatio(0.85f).fadeBackground(128).transition(UIConstants.Transition.FADE);
a.show();
});
add(LAY_AUTO, excluir);
// ActionSheet — पहला तर्क रद्द करने का टेक्स्ट है।
Button compartilhar = new Button("Compartilhar");
compartilhar.onAction(c -> {
ActionSheet sheet = new ActionSheet("Cancelar", "E-mail", "Mensagem");
sheet.buttonAction(0, x -> Hint.show("Enviado por e-mail", 2000)); // इंडेक्स 0 = E-mail
sheet.buttonAction(1, x -> Hint.show("Enviado por SMS", 2000)); // इंडेक्स 1 = Mensagem
sheet.show();
});
add(LAY_AUTO, compartilhar);
// Hint — क्षणिक सूचना (delay ms में)।
Button avisar = new Button("Mostrar aviso");
avisar.onAction(c -> Hint.show("Salvo com sucesso", 2000));
add(LAY_AUTO, avisar);
}
}
नीचे दिए गए स्निपेट केवल मुख्य भाग दिखाते हैं (जो
onShow()के अंदर जाता है)। चलाने के लिए, उन्हें ऊपर दिए गएMainWindowढाँचे में रखें।
Alert (पुष्टि करना / सूचित करना)
बटनों के टेक्स्ट कंस्ट्रक्टर में जाते हैं; प्रत्येक की क्रिया buttonAction के साथ इंडेक्स द्वारा जोड़ी जाती है:
// बटन: इंडेक्स 0 = "Cancelar", इंडेक्स 1 = "Excluir"
Alert a = new Alert("Excluir", "Confirma a exclusão deste item?", "Cancelar", "Excluir");
a.buttonAction(1, c -> excluirItem()); // क्रिया यहां से आती है, show(cb) से नहीं; Cancelar सिर्फ बंद करता है
a.show();
ActionSheet (एक क्रिया चुनना)
यह भी टेक्स्ट कंस्ट्रक्टर में लेता है (पहला आर्गुमेंट कैंसल का टेक्स्ट है):
ActionSheet sheet = new ActionSheet("Cancelar", "E-mail", "Mensagem");
sheet.buttonAction(0, c -> enviarPorEmail()); // इंडेक्स 0 = "E-mail"
sheet.buttonAction(1, c -> enviarPorSMS()); // इंडेक्स 1 = "Mensagem"
sheet.cancelAction(c -> {}); // वैकल्पिक: रद्द करने पर क्रिया
sheet.show();
Hint (क्षणिक सूचना — Toast/ToolTip की जगह)
Hint.show("Salvo com sucesso", 2000); // खुद गायब हो जाता है
पॉपअप की दिखावट कॉन्फ़िगर करना — WindowStyle
पॉपअप का आकार/स्थिति विंडो के WindowStyle द्वारा तय होती है। उपयोगी फ़ील्ड:
| फ़ील्ड | प्रभाव |
|---|---|
widthRatio / heightRatio |
स्क्रीन के अंश के रूप में आकार |
yRatio / xAbs / yAbs |
स्थिति |
fadeBackground |
पॉपअप के पीछे की पृष्ठभूमि को गहरा करता है |
canHide |
बाहर छूने पर पॉपअप बंद हो जाता है |
canMove |
उपयोगकर्ता खींच सकता है |
transition / transitionDuration |
प्रवेश/निकास एनिमेशन (डिफ़ॉल्ट NONE, 0.5s) |
getStyle().widthRatio = 0.85f; // चौड़ाई का 85%
getStyle().fadeBackground = true; // गहरी पृष्ठभूमि
getStyle().transition = UIConstants.Transition.FADE; // fade के साथ प्रकट होता है
अच्छे तौर-तरीके
- स्पष्ट बटन लेबल (“OK” के बजाय “हटाएँ”); विनाशकारी क्रिया सबसे अंत में।
- गैर-अवरोधक पुष्टियों के लिए
Alertकी जगहHintको प्राथमिकता दें।
आम गलतियाँ
alert.show(cb)सेcbके चलने की उम्मीद करना — यह नहीं चलता; क्रिया कोbuttonAction(i, callback)से जोड़ें।addButton(...)/addOption(...)को कॉल करना — वे मौजूद नहीं हैं; टेक्स्ट कंस्ट्रक्टर में जाते हैं और क्रियाएँ इंडेक्स द्वारा।- एक ही घटना पर कई पॉपअप ढेर करना।
यह भी देखें
- मान लौटाना · विंडो स्टैक
- कैटलॉग: Alert · ActionSheet · Hint