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

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

Progress

Progress एक प्रगति संकेतक है जिसमें तीन परस्पर अनन्य मोड हैं, जो constructor में चुने जाते हैं (mode फ़ील्ड final है): निर्धारित बार (ज्ञात प्रतिशत), अनिश्चित अनंत एनिमेशन, या लूप में घूमता हुआ आइकन। एनिमेशन जोड़े जाने पर शुरू होते हैं (onAdd, परीक्षण के तहत को छोड़कर) और हटाए जाने पर रुक जाते हैं (onRemove)।

🟢 · पैकेज: dev.crossfly.ui · विस्तार करता है: Component · शैली: ProgressStyle

कब उपयोग करें

  • DETERMINATE_BAR: जब दिखाने के लिए कोई ज्ञात प्रतिशत/मान हो।
  • INDETERMINATE / SPINNING_ICON: जब अवधि अज्ञात हो (लोड हो रहा है…)।

कब उपयोग न करें

  • उपयोगकर्ता द्वारा खींचकर कोई मान चुनने के लिए → slider उपयोग करें।

रूप-रंग

यह मोड (Progress.Mode) पर और, अनिश्चित में, ProgressType पर निर्भर करता है:

ProgressType दृश्य
IOS वृत्ताकार spinner (iOS शैली)
FLUTTER वृत्ताकार संकेतक (timing easeInOut)
MATERIAL रैखिक Material बार (निरंतर wrap)
STRIPED धारीदार एनिमेटेड बार

बार केवल क्षैतिज है; ऊँचाई max(fontHeight * barHeight, 4) है। रंग ProgressStyle के filledColor/emptyColor से आते हैं।

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

package com.exemplo;

import dev.crossfly.ui.*;
import dev.crossfly.ui.layout.*;
import dev.crossfly.ui.style.*;      // Styles.progress()
import dev.crossfly.ui.graphics.*;   // MaterialIcon

/** चलाने योग्य मुख्य स्क्रीन। launcher (classname) की ओर संकेत करें और चलाएँ: gradlew :lwjgl3:run */
public class MainWindow extends Window
{
   @Override
   public void onShow() throws Exception
   {
      super.onShow();
      setLayout(new VerticalLayout());

      // 1) निर्धारित बार (0..100) 75% तक भरी हुई
      Progress barra = new Progress(0f, 100f);
      barra.setValue(75f);
      barra.style(Styles.progress().barHeight(1.5f));
      add(LAY_AUTO, barra);

      // 2) अनिर्धारित बार (Material) — जुड़ते ही खुद एनिमेट होती है
      Progress material = new Progress(ProgressType.MATERIAL);
      material.style(Styles.progress().barHeight(1.5f));
      add(LAY_AUTO, material);

      // 3) लूप में घूमता आइकन
      Progress spinner = new Progress(new MaterialIcon("autorenew", 48));
      add(LAY_AUTO, spinner);
   }
}

नीचे के अंश केवल मूल भाग दिखाते हैं (जो onShow() के अंदर जाता है)। चलाने के लिए, उन्हें ऊपर दिए MainWindow कंकाल में रखें।

बुनियादी उपयोग

Progress barra = new Progress(0f, 100f);                // DETERMINATE_BAR मोड
barra.setValue(75f);                                    // 75%
barra.style(Styles.progress().barHeight(1.5f));
container.add(0f, barra);

Constructors

Constructor मोड विवरण
Progress(float min, float max) DETERMINATE_BAR value के समानुपाती बार (min से शुरू)।
Progress(ProgressType type) INDETERMINATE अनंत एनिमेशन (Material/Flutter/iOS/Striped)।
Progress(Icon icon) SPINNING_ICON निरंतर लूप में एक आइकन घुमाता है।

गुण और अनुकूलन

गुण / विधि प्रकार डिफ़ॉल्ट क्या करता है
setValue(float) Progress (fluente) — बार मोड: मान सेट करता है (clamp के साथ) और progress पुनर्गणना करता है।
mode Progress.Mode (campo, final) ctor संचालन मोड (पठन)।
value / min / max float (campo) ctor निर्धारित बार की स्थिति।
progress float (campo) — सामान्यीकृत प्रगति [0,1] (बार)।
pivot(int, int) Progress (fluente) -1,-1 आइकन मोड: घूर्णन का pivot (-1,-1 = स्वतः-केंद्र)।

Callbacks और घटनाएँ

Progress गैर-इंटरैक्टिव है: कोई callbacks उजागर नहीं करता। काम आगे बढ़ने पर setValue(...) कॉल करके बार अद्यतन करें।

अवस्थाएँ

  • DETERMINATE_BAR: setValue(v) [min,max] में clamp करता है, progress = (value-min)/(max-min) और filledW = barW * progress।
  • INDETERMINATE / SPINNING_ICON: onAdd में शुरू हुई निरंतर LoopAnimation, onRemove में रुकी।

तीनों मोड

// निर्धारित बार 0..50, 35 भरा हुआ
Progress bar = new Progress(0f, 50f);
bar.setValue(35f);
bar.style(Styles.progress().barHeight(1.5f));
container.add(0f, bar);

// अनिर्धारित बार (Material)
Progress material = new Progress(ProgressType.MATERIAL);
material.style(Styles.progress().barHeight(1.5f));
container.add(0f, material);

// घूमता आइकन
Progress spinner = new Progress(new MaterialIcon("autorenew", 48));
container.add(0f, spinner);

अच्छे अभ्यास

  • जब भी प्रतिशत ज्ञात हो DETERMINATE_BAR उपयोग करें; अज्ञात अवधियों के लिए अनिश्चित सुरक्षित रखें।
  • उपवर्ग बनाने के बजाय शैली के filledColor/emptyColor से रंग अनुकूलित करें।

सामान्य गलतियाँ

  • अनिश्चित/spinner मोड में setValue कॉल करना: इसका कोई उपयोगी दृश्य प्रभाव नहीं (मान केवल DETERMINATE_BAR में मायने रखता है)।
  • ऊर्ध्वाधर बार या अंतर्निहित प्रतिशत पाठ की अपेक्षा करना: बार केवल क्षैतिज है और prefix/suffix लेबल रहित है।

यह भी देखें

  • क्षेत्र गाइड: ui/ · रेसिपी: cookbook/
  • अवधारणा (एनिमेशन और जीवनचक्र): concepts/
  • संबंधित घटक: slider
क्या यह पृष्ठ उपयोगी था?