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