यह पृष्ठ पुर्तगाली से मशीन-अनुवादित है और इसमें त्रुटियाँ हो सकती हैं। पुर्तगाली संस्करण प्रामाणिक है।
checkbox और radio (Option और Group) का उपयोग कैसे करें
उद्देश्य. चिह्नित करने योग्य विकल्प प्रदान करना। एक पृथक Option checkbox की तरह
काम करता है (स्वतंत्र चालू/बंद)। एक ही Group में कई Option radio buttons की तरह
काम करते हैं (एक बार में केवल एक चिह्नित)। स्वतंत्र चयनों के लिए checkbox उपयोग करें;
विकल्पों के बीच एकल चयन के लिए radio।
प्रयुक्त APIs
new Option()/new Option(String text)— विकल्प बनाता है (लेबल के साथ या बिना)। अचिह्नित शुरू होता है।option.checked(boolean checked)— प्रारंभिक स्थिति बिना एनिमेशन परिभाषित करता है (फ्लुएंट)।option.setChecked(boolean checked)— क्रॉसफेड एनिमेशन के साथ स्थिति बदलता है।option.isChecked()— वर्तमान स्थिति लौटाता है (boolean)।option.toggle()— स्थिति को उलटता है (स्पर्श पर आंतरिक रूप से कॉल किया जाता है)।option.onAction(Component.Action action)— कॉलबैक जो तब ट्रिगर होता है जब उपयोगकर्ता के स्पर्श से स्थिति बदलती है।new Group()— पारस्परिक रूप से अनन्य चयन का समूह।option.group(Group g)— विकल्प को समूह से संबद्ध करता है (radio में बदल देता है)।group.fade(boolean)— चयन बदलने पर रंग का एनिमेटेड संक्रमण सक्षम करता है।
गैर-स्पष्ट व्यवहार (स्रोत में पुष्ट):
- एक
Groupमें, पहले से चिह्नित विकल्प को छूने से वह अचिह्नित नहीं होता (toggle()जल्दी लौट आता है यदिchecked && getGroup() != null) — radio की तरह: केवल दूसरा चुनने पर बदलता है।onActionकेवल तभी ट्रिगर होता है जब स्थिति वास्तव में बदली हो (if (checked != prev) runActions())।- समूह के किसी विकल्प में
checked(true)द्वारा चिह्नित करना पहले से ही समूह को सूचित करता है और बाकियों को अचिह्नित कर देता है।
पूरा उदाहरण (कॉपी करें, पेस्ट करें और चलाएं)
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());
// ── Checkbox (अलग Option) ──
Option aceito = new Option("Aceito os termos");
aceito.checked(false); // प्रारंभिक स्थिति, बिना एनिमेशन
aceito.onAction(o -> atualizarBotao(aceito.isChecked()));
add(aceito);
// ── Radio (एक ही Group में कई Option) ──
Group entrega = new Group();
Option padrao = new Option("Entrega padrão").group(entrega);
Option expresso = new Option("Entrega expressa").group(entrega);
padrao.checked(true); // समूह का प्रारंभिक चयन
expresso.onAction(o -> escolherFrete("EXPRESSO"));
padrao.onAction(o -> escolherFrete("PADRAO"));
add(padrao);
add(expresso);
}
private void atualizarBotao(boolean aceito)
{
// ... checkbox के अनुसार बटन सक्षम/अक्षम करें ...
}
private void escolherFrete(String tipo)
{
// ... शिपिंग चयन पर प्रतिक्रिया दें ...
}
}
नीचे का अंश केवल मुख्य भाग दिखाता है। चलाने के लिए, इसे ऊपर दिए गए
MainWindowढाँचे में रखें।
न्यूनतम अंश
// ── Checkbox (अलग Option) ──
Option aceito = new Option("Aceito os termos");
aceito.checked(false); // प्रारंभिक स्थिति, बिना एनिमेशन
aceito.onAction(o -> atualizarBotao(aceito.isChecked()));
add(aceito);
// ── Radio (एक ही Group में कई Option) ──
Group entrega = new Group();
Option padrao = new Option("Entrega padrão").group(entrega);
Option expresso = new Option("Entrega expressa").group(entrega);
padrao.checked(true); // समूह का प्रारंभिक चयन
expresso.onAction(o -> escolherFrete("EXPRESSO"));
padrao.onAction(o -> escolherFrete("PADRAO"));
add(padrao);
add(expresso);
सत्यापन नोट (कोड 2026). पुष्ट:
OptionComponent.CheckableऔरAlphaAnimation.Animateको लागू करता है;Group.select(sender)बाकी सदस्यों (Option/Switch) को स्वतः अचिह्नित कर देता है।Group.fade(डिफ़ॉल्टfalse) नियंत्रित करता है कि परिवर्तन एनिमेटेड हो या नहीं।Groupमें कोई “मान” नहीं है: चयन जानने के लिए, प्रत्येकOptionमेंisChecked()जाँचें, या कॉलबैक में चुने गए संदर्भ को सहेजें।
और गहराई से जानें
- विजेट पृष्ठ: Option · Group
- Dropdown (पॉपअप में एकल चयन): dropdown-selecao.md