मुख्य सामग्री पर जाएँ
CrossFly 100% ओपन सोर्सGitHub पर फ़ॉलो करें
CrossFlyCrossFly
शुरू करें

यह पृष्ठ पुर्तगाली से मशीन-अनुवादित है और इसमें त्रुटियाँ हो सकती हैं। पुर्तगाली संस्करण प्रामाणिक है।

विनाशकारी क्रिया से पहले पुष्टि कैसे माँगें

उद्देश्य। किसी चीज़ को हटाने/त्यागने से पहले, दो बटनों वाला एक Alert दिखाएँ (उदा.: “रद्द करें” और “हटाएँ”)। विनाशकारी क्रिया केवल पुष्टि बटन के callback में ही निष्पादित करें।

उपयोग की गई APIs

  • new Alert(String title, String message, String... buttonTexts) — डायलॉग बनाता है। Alert एक Window है; बटन सक्रिय Skin का अनुसरण करते हैं।
  • Alert.buttonAction(int index, Component.Action action) — किसी बटन की क्रिया परिभाषित करता है (0-आधारित इंडेक्स)। बिना क्रिया के, बटन केवल बंद होता है (hide())।
  • Alert.show() — डायलॉग को स्टैक करता है (push modal)।
  • WindowStyle.fadeBackground(int alpha) — नीचे की विंडो को गहरा करता है (0–255)। getStyle() के माध्यम से style प्राप्त करें।
  • Hint.show(String message, int delayMs) — फ़ीडबैक का एक छोटा toast दिखाता है।

पूर्ण उदाहरण (कॉपी करें, पेस्ट करें और चलाएँ)

package com.exemplo;

import dev.crossfly.ui.*;
import dev.crossfly.ui.layout.*;

/** मुख्य निष्पादन योग्य स्क्रीन: एक बटन पुष्टि Alert दिखाता है। */
public class MainWindow extends Window
{
   @Override
   public void onShow() throws Exception
   {
      super.onShow();
      setLayout(new VerticalLayout());

      add(new Label("Pedido #1234"));
      add(new Button("Excluir pedido").onAction(e -> confirmarExclusao()));
   }

   private void confirmarExclusao()
   {
      Alert alert = new Alert("Excluir pedido", "Esta ação não pode ser desfeita.", "Cancelar", "Excluir");

      // पृष्ठभूमि को गहरा करता है (0..255)। Alert का getStyle() एक WindowStyle है।
      ((WindowStyle) alert.getStyle()).fadeBackground(150);

      // इंडेक्स 0 = "रद्द करें": बिना buttonAction के, बटन खुद ही Alert बंद कर देता है।
      // इंडेक्स 1 = "हटाएं": विनाशकारी क्रिया + फीडबैक।
      alert.buttonAction(1, e ->
      {
         excluirPedido();                 // विनाशकारी क्रिया
         alert.hide();                    // संवाद बंद करता है
         Hint.show("Pedido excluído", 1500);
      });

      alert.show();
   }

   private void excluirPedido()
   {
      // ... आपका हटाने का तर्क ...
   }
}

नीचे का अंश केवल मुख्य भाग दिखाता है। चलाने के लिए, इसे ऊपर दिए गए MainWindow ढाँचे में रखें।

न्यूनतम अंश

// स्रोत में सत्यापित: Alert.buttonAction(idx, Action); WindowStyle.fadeBackground(int 0-255); Hint.show(msg, ms)
Alert alert = new Alert("Excluir pedido", "Esta ação não pode ser desfeita.", "Cancelar", "Excluir");

// पृष्ठभूमि को गहरा करता है (0..255)। Alert का getStyle() एक WindowStyle है।
((WindowStyle) alert.getStyle()).fadeBackground(150);

// इंडेक्स 0 = "रद्द करें": बिना buttonAction के, बटन खुद ही Alert बंद कर देता है।
// इंडेक्स 1 = "हटाएं": विनाशकारी क्रिया + फीडबैक।
alert.buttonAction(1, e ->
{
   excluirPedido();                 // विनाशकारी क्रिया
   alert.hide();                    // संवाद बंद करता है
   Hint.show("Pedido excluído", 1500);
});

alert.show();

आश्चर्य से बचाने वाली बातें:

  • यदि आप किसी बटन के लिए buttonAction परिभाषित नहीं करते, तो Alert onAction(e -> hide()) जोड़ देता है — बटन बिना और कुछ किए डायलॉग बंद कर देता है। इसीलिए “रद्द करें” सामान्यतः buttonAction की आवश्यकता नहीं रखता।
  • विनाशकारी क्रिया हमेशा पुष्टि बटन (यहाँ, इंडेक्स 1) में रखें, कभी भी डिफ़ॉल्ट व्यवहार के रूप में नहीं।
  • fadeBackground alpha 0–255 लेता है (0xAARRGGBB नहीं)। 150 सामग्री को मिटाए बिना एक ध्यान देने योग्य गहरापन देता है।

और गहराई में जाएँ

क्या यह पृष्ठ उपयोगी था?