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

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

टेक्स्ट फ़ील्ड (TextField)

TextField एक एकल-पंक्ति फ़ील्ड है। आवश्यक चीज़ों के लिए fluent API; सूक्ष्म व्यवहार TextFieldStyle से आता है।

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

package com.exemplo;

import dev.crossfly.ui.*;
import dev.crossfly.ui.layout.*;
import dev.crossfly.ui.style.*;   // TextFieldStyle (व्यवहारिक कॉन्फ़िग)

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

      // फ़्लोटिंग लेजेंड वाला नाम फ़ील्ड
      TextField nome = new TextField().caption("Nome");
      nome.<TextFieldStyle>getStyle().floatingCaption(true);
      add(LAY_AUTO, nome);

      // दिखाने/छिपाने के बटन वाला पासवर्ड फ़ील्ड
      TextField senha = new TextField().caption("Senha");
      senha.<TextFieldStyle>getStyle()
         .mode(EditMode.PASSWORD)
         .passwordToggle(true);
      add(LAY_AUTO, senha);

      // लेबल जहाँ पढ़ा गया मान प्रदर्शित होगा
      Label resultado = new Label("");
      add(LAY_AUTO, resultado);

      // प्रति-कुंजी कोई callback नहीं है: सबमिट पर getText() पढ़ें
      Button enviar = new Button("Enviar");
      enviar.onAction(c -> resultado.setText("Nome = " + nome.getText()));
      add(LAY_AUTO, enviar);
   }
}

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

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

TextField nome = new TextField()
   .caption("Nome")                 // फ़्लोटिंग लेजेंड
   .text("");                       // प्रारंभिक मान
painel.add(LAY_AUTO, nome);

// जब आवश्यकता हो तब मान पढ़ें (प्रति-कुंजी इवेंट नहीं है):
Button enviar = new Button("Enviar");
enviar.onAction(c -> Debug.log("Nome = " + nome.getText()));

कंस्ट्रक्टर और fluent API

सदस्य प्रभाव
new TextField() / new TextField("texto") खाली फ़ील्ड / प्रारंभिक मान के साथ
.caption(String) कैप्शन (फ़ोकस करने पर फ़्लोट होता है, यदि floatingCaption)
.text(String) / setText(String) मान सेट करता है
.leftIcon(Icon) / .rightIcon(Icon) किनारों पर आइकन
.rightIcon(Icon, Action) क्लिक करने योग्य आइकन (जैसे: साफ़ करना)
.keyboard(Keyboard) कीबोर्ड का प्रकार (देखें मास्क और कीबोर्ड)
getText() / getTextWithoutMask() मान पढ़ना (मास्क के साथ / बिना)
clearText() साफ़ करना

फ़्लोटिंग कैप्शन

स्टाइल में सक्षम करें (floatingCaption) — फ़ोकस/भरने पर कैप्शन ऊपर उठता है:

TextField email = new TextField().caption("E-mail");
email.<TextFieldStyle>getStyle().floatingCaption(true);

दिखाएँ/छिपाएँ बटन के साथ पासवर्ड

TextField senha = new TextField().caption("Senha");
senha.<TextFieldStyle>getStyle()
   .mode(EditMode.PASSWORD)     // अक्षरों को मास्क करता है
   .passwordToggle(true);       // आँख का आइकन स्वचालित रूप से जोड़ता है

passwordToggle(true) के साथ, दाईं ओर का आइकन दृश्यता को स्वयं टॉगल करता है।

क्रिया आइकन (जैसे: साफ़ करना)

TextField busca = new TextField().caption("Buscar")
   .rightIcon(new MaterialIcon(""), c -> busca.clearText());  // "close"

अच्छे तौर-तरीके

  • भेजते समय मान को getText() से पढ़ें; कच्चे अंकों के लिए getTextWithoutMask() का उपयोग करें।
  • व्यवहार (mode, maxLength, floatingCaption) को टाइप किए गए getStyle() के माध्यम से कॉन्फ़िगर करें (campo.<TextFieldStyle>getStyle()...)।
  • जब उपयुक्त हो तो स्टाइल में .maxLength(n) से आकार सीमित करें।

आम गलतियाँ

  • एक onChange/onTextChanged खोजना — यह मौजूद नहीं है; जब आवश्यकता हो getText() पढ़ें।
  • डेटाबेस में सहेजते समय getText() (मास्क के साथ) को getTextWithoutMask() (बिना) के साथ भ्रमित करना।
  • कॉम्पोनेंट में mode/mask सेट करना — वे स्टाइल के सेटर हैं।

यह भी देखें

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