यह पृष्ठ पुर्तगाली से मशीन-अनुवादित है और इसमें त्रुटियाँ हो सकती हैं। पुर्तगाली संस्करण प्रामाणिक है।
Group
Group “चेक करने योग्य” कॉम्पोनेंट (option, switch और किसी भी Checkable) को परस्पर अनन्य चयन के लिए समूहित करता है — radio button व्यवहार। जब कोई सदस्य चिह्नित होता है, तो अन्य स्वचालित रूप से अचिह्नित हो जाते हैं, वैकल्पिक रूप से एनिमेटेड ट्रांज़िशन (fade) के साथ। यह एक Component नहीं है: कुछ भी नहीं बनाता, यह केवल सदस्यों का रजिस्टर + अनन्यता का तर्क है।
🟢 · पैकेज:
dev.crossfly.ui· विस्तारित करता है:java.lang.Object(दृश्य नहीं) · स्टाइल: — (अपनी कोई स्टाइल नहीं)
कब उपयोग करें
optionके एक समूह को अनन्य radio buttons में बदलना।switchके एक समूह या अपने किसी भीCheckableको अनन्य बनाना।
कब उपयोग न करें
दिखावट
कोई नहीं। Group पूरी तरह तार्किक है। प्रत्येक बटन की दिखावट सदस्यों की ज़िम्मेदारी है (जिन्हें चेक करने योग्य दृश्य कॉम्पोनेंट होना चाहिए)।
पूर्ण उदाहरण (कॉपी, पेस्ट और रन करें)
package com.exemplo;
import dev.crossfly.ui.*;
import dev.crossfly.ui.layout.*;
/** चलाने योग्य मुख्य स्क्रीन। launcher (classname) की ओर संकेत करें और चलाएँ: gradlew :lwjgl3:run */
public class MainWindow extends Window
{
@Override
public void onShow() throws Exception
{
super.onShow();
setLayout(new VerticalLayout());
Label saida = new Label("Selecionado: Cartão");
add(LAY_AUTO, saida);
// Group, Options को परस्पर अपवर्जी (radio) बनाता है, बदलाव पर fade के साथ
Group g = new Group().fade(true);
Option[] ops = {
new Option("Cartão").group(g).checked(true),
new Option("Boleto").group(g),
new Option("Pix").group(g)
};
for (Option o : ops)
{
// Group चयनित को नहीं रखता: हर सदस्य सूचित करता है और हम isChecked() पढ़ते हैं
o.onAction(c -> {
for (Option x : ops)
if (x.isChecked())
saida.setText("Selecionado: " + x.text);
});
add(LAY_AUTO, o);
}
}
}
नीचे दिए गए अंश केवल मुख्य भाग दिखाते हैं (जो
onShow()के अंदर जाता है)। रन करने के लिए, इन्हें ऊपर दिएMainWindowढांचे में रखें।
बुनियादी उपयोग
Group g = new Group().fade(true); // fade = एनिमेटेड ट्रांज़िशन
Option a = new Option("Opção A").group(g);
Option b = new Option("Opção B").group(g);
Option c = new Option("Opção C").group(g);
container.add(LAY_AUTO, a);
container.add(LAY_AUTO, b);
container.add(LAY_AUTO, c);
// किसी एक को चुनने पर, बाकी fade के साथ अचयनित हो जाती हैं।
कंस्ट्रक्टर
| कंस्ट्रक्टर | विवरण |
|---|---|
Group() |
खाली समूह, बिना fade के। |
गुण और अनुकूलन
| गुण / मेथड | प्रकार | डिफ़ॉल्ट | क्या करता है |
|---|---|---|---|
fade(boolean) |
Group (फ्लुएंट) |
false |
चयन के एनिमेटेड ट्रांज़िशन को चालू/बंद करता है। |
fade |
boolean (फ़ील्ड) |
false |
fade की अवस्था (पठन)। |
add(Component) |
void |
— | एक सदस्य पंजीकृत करता है (पहचान द्वारा, डुप्लिकेट को अनदेखा करता है)। |
remove(Component) |
void |
— | एक सदस्य हटाता है (यदि सदस्य नहीं है तो no-op)। |
select(Component sender) |
void |
— | sender को छोड़कर सभी सदस्यों को अचिह्नित करता है। |
आम तौर पर आप
add/selectको सीधे नहीं कॉल करते: चेक करने योग्य स्वयं.group(group)के माध्यम से पंजीकृत होता है और चिह्नित होने परselect(this)कॉल करता है।
कॉलबैक और इवेंट
Group के कोई कॉलबैक नहीं हैं। प्रत्येक सदस्य के onAction में परिवर्तनों पर प्रतिक्रिया दें और isChecked() से जांचें।
अवस्थाएं
Group “कौन सा चयनित है” नहीं रखता — यह केवल यह सुनिश्चित करता है कि जब कोई सूचित करे कि वह चिह्नित हुआ, तो अन्य बंद रहें। कोई getSelected() नहीं है: प्रत्येक सदस्य में अवस्था जांचें (isChecked())।
पता लगाना कि कौन सा सदस्य चयनित है
Group g = new Group();
Option[] ops = {
new Option("Cartão").group(g).checked(true),
new Option("Boleto").group(g),
new Option("Pix").group(g)
};
for (Option o : ops)
container.add(LAY_AUTO, o);
// किसी बिंदु पर (उदा.: "Confirmar" बटन):
for (Option o : ops)
if (o.isChecked())
System.out.println("selecionado: " + o.text);
सर्वोत्तम प्रथाएं
- पंजीकरण को कॉम्पोनेंट पर छोड़ें:
.group(g)आंतरिक रूप से पहले हीgroup.add(this)कॉल करता है। - अनन्यता केवल इसलिए काम करती है क्योंकि
Option/Switchचिह्नित होने परselect(this)कॉल करते हैं; एक अपनाCheckableभी ऐसा ही करे।
सामान्य गलतियां
- एक अस्तित्वहीन
getSelected()ढूंढना —isChecked()जांचते हुए सदस्यों पर इटरेट करें। - किसी सदस्य में
.group(g)भूलना: वह परस्पर अनन्यता से बाहर रह जाता है।