यह पृष्ठ पुर्तगाली से मशीन-अनुवादित है और इसमें त्रुटियाँ हो सकती हैं। पुर्तगाली संस्करण प्रामाणिक है।
न्यूमेरिक कीबोर्ड कैसे खोलें
उद्देश्य. फोकस मिलने पर फ़ील्ड को केवल संख्याओं वाला कीबोर्ड खुलवाना — सिस्टम का नेटिव न्यूमेरिक कीबोर्ड, CrossFly का अंतर्निहित Keypad, या कैलकुलेटर वेरिएंट।
उपयोग की गई APIs
campo.keyboard(Keyboard.NUMERIC)— फ़्लुएंट शॉर्टकट (setKeyboardके समतुल्य)। उपलब्ध प्रकार (enumKeyboard):NONE,DEFAULT,NUMERIC,KEYPAD,CALCULATOR,DATE,TIME।campo.setKeyboard(Keyboard kbd)— कीबोर्ड परिभाषित करता है।Keyboard.DEFAULTपास करने से फ़ील्ड वर्तमानEditModeद्वारा निहित कीबोर्ड (mode.getKeyboard()) अपनाता है।campo.<TextFieldStyle>getStyle().mode(EditMode.NUMERIC)— न्यूमेरिक मोड परिभाषित करता है; परिणामस्वरूप,mode(...)हमेशा मोड से कीबोर्ड निकालता है (NUMERIC → NUMERIC)। ओवरराइड करने के लिए,mode(...)के बादkeyboard(...)को कॉल करें।
कौन सा चुनें:
| कीबोर्ड | व्यवहार |
|---|---|
NUMERIC |
OS का नेटिव न्यूमेरिक कीबोर्ड। डेस्कटॉप पर KEYPAD पर गिर जाता है। |
KEYPAD |
CrossFly का Keypad कंपोनेंट (अंतर्निहित कुंजियों का ग्रिड)। |
CALCULATOR |
कैलकुलेटर मोड में Keypad (isCalculator(true))। |
डेस्कटॉप पर (
Device.platform.isDesktop()),NUMERICकोshowInput()में स्वचालित रूप सेKEYPADमें बदल दिया जाता है, क्योंकि कोई नेटिव वर्चुअल कीबोर्ड नहीं होता।
पूर्ण उदाहरण (कॉपी करें, पेस्ट करें और चलाएँ)
package com.exemplo;
import dev.crossfly.ui.*;
import dev.crossfly.ui.layout.*;
import dev.crossfly.ui.style.*; // TextFieldStyle (style में config)
/** चलाने योग्य मुख्य स्क्रीन। launcher (classname) की ओर संकेत करें और चलाएँ: gradlew :lwjgl3:run */
public class MainWindow extends Window
{
@Override
public void onShow() throws Exception
{
super.onShow();
setLayout(new VerticalLayout());
// 1) नेटिव न्यूमेरिक कीबोर्ड (डेस्कटॉप पर KEYPAD)
TextField idade = new TextField("");
idade.caption("Idade");
idade.<TextFieldStyle>getStyle().mode(EditMode.NUMERIC);
// 2) मोड की परवाह किए बिना, बिल्ट-इन Keypad को बाध्य करें
TextField pin = new TextField("");
pin.caption("PIN");
pin.keyboard(Keyboard.KEYPAD);
// 3) कैलकुलेटर
TextField total = new TextField("");
total.caption("Total");
total.keyboard(Keyboard.CALCULATOR);
Label resultado = new Label("");
Button enviar = new Button("Enviar");
enviar.onAction(o ->
resultado.setText("Idade: " + idade.getText()
+ " · PIN: " + pin.getText()
+ " · Total: " + total.getText()));
add(LAY_FILL, idade);
add(LAY_FILL, pin);
add(LAY_FILL, total);
add(LAY_AUTO, enviar);
add(LAY_FILL, resultado);
}
}
नीचे दिया गया अंश केवल मुख्य भाग दिखाता है। चलाने के लिए, इसे ऊपर दिए गए
MainWindowढाँचे में रखें।
न्यूनतम अंश
import dev.crossfly.ui.*;
import dev.crossfly.ui.style.*;
import static dev.crossfly.ui.UIConstants.EditMode;
import static dev.crossfly.ui.UIConstants.Keyboard;
// 1) नेटिव न्यूमेरिक कीबोर्ड (डेस्कटॉप पर KEYPAD)
TextField idade = new TextField("");
idade.caption("Idade");
idade.<TextFieldStyle>getStyle().mode(EditMode.NUMERIC);
// 2) मोड की परवाह किए बिना, बिल्ट-इन Keypad को बाध्य करें
TextField pin = new TextField("");
pin.caption("PIN");
pin.keyboard(Keyboard.KEYPAD);
// 3) कैलकुलेटर
TextField total = new TextField("");
total.keyboard(Keyboard.CALCULATOR);
कीबोर्ड खोलने के अलावा अंकों तक सीमित करने के लिए, इसे validChars के साथ मिलाएँ (देखें किसी फ़ील्ड को सत्यापित करें):
idade.<TextFieldStyle>getStyle()
.mode(EditMode.NUMERIC)
.validChars("0123456789")
.maxLength(3);
गहराई से जानें
- मास्क और कीबोर्ड · Keypad
- सहयोगी रेसिपी: करेंसी मास्क · किसी फ़ील्ड को सत्यापित करें
- कैननिकल स्रोत: अध्याय 14 — मूल विजेट · Enums (UIConstants)
क्या यह पृष्ठ उपयोगी था?प्रतिक्रिया के लिए धन्यवाद!