यह पृष्ठ पुर्तगाली से मशीन-अनुवादित है और इसमें त्रुटियाँ हो सकती हैं। पुर्तगाली संस्करण प्रामाणिक है।
टेक्स्ट क्षेत्र (TextArea)
TextArea एक बहु-पंक्ति फ़ील्ड है — TextField के समान आधार (TextInput), जिसमें पंक्ति
विभाजन, ऊर्ध्वाधर स्क्रॉलिंग और प्रति-पंक्ति आइकन हैं।
पूर्ण उदाहरण (कॉपी करें, पेस्ट करें और चलाएँ)
package com.exemplo;
import dev.crossfly.ui.*;
import dev.crossfly.ui.layout.*;
import dev.crossfly.ui.style.*; // TextAreaStyle (व्यवहारिक कॉन्फ़िग)
/** चलाने योग्य मुख्य स्क्रीन। launcher (classname) की ओर संकेत करें और चलाएँ: gradlew :lwjgl3:run */
public class MainWindow extends Window
{
@Override
public void onShow() throws Exception
{
super.onShow();
setLayout(new VerticalLayout());
// बहु-पंक्ति क्षेत्र: स्पष्ट ऊँचाई की आवश्यकता है।
// यहाँ कंटेनर के अंश के माध्यम से (ऊँचाई का 40%); विकल्प: स्टाइल में autoHeight।
TextArea obs = new TextArea().caption("Observações");
add(0.4f, obs);
// लेबल जहाँ पढ़ी गई सामग्री प्रदर्शित होगी
Label resultado = new Label("");
add(LAY_AUTO, resultado);
// प्रति-कुंजी कोई callback नहीं है: सबमिट पर getText() पढ़ें
Button enviar = new Button("Enviar");
enviar.onAction(c -> resultado.setText("Chars = " + obs.getText().length()));
add(LAY_AUTO, enviar);
}
}
नीचे दिए गए स्निपेट केवल मुख्य भाग दिखाते हैं (जो
onShow()के अंदर जाता है)। चलाने के लिए, उन्हें ऊपर दिए गएMainWindowढाँचे में रखें।
बुनियादी उपयोग
TextArea obs = new TextArea()
.caption("Observações")
.text("");
painel.add(0.5f, obs); // कंटेनर की ऊँचाई का 50% घेरता है (VerticalLayout)
// सामग्री पढ़ना:
String texto = obs.getText();
कंस्ट्रक्टर और fluent API
| सदस्य | प्रभाव |
|---|---|
new TextArea() / new TextArea("texto") |
खाली / प्रारंभिक मान के साथ |
.caption(String) |
कैप्शन |
.text(String) / setText(String) |
सामग्री सेट करता है |
.rightIcons(Icon...) |
दाईं ओर आइकन, प्रति क्रिया पंक्ति एक |
.rightIconAction(int linha, Action) |
किसी विशिष्ट आइकन की क्रिया |
getText() / clearText() |
पढ़ना / साफ़ करना |
scrollToTop() · scrollToBottom() · scrollToLine(int) |
प्रोग्रामेटिक स्क्रॉलिंग |
आकार देना
TextField (एक पंक्ति की ऊँचाई) के विपरीत, TextArea को स्पष्ट ऊँचाई की आवश्यकता होती है — VerticalLayout में एक
अंश दें या स्टाइल में autoHeight:
obs.getStyle().autoHeight(Relative.ofFont(6f)); // ~6 पंक्ति ऊँचाई
अच्छे तौर-तरीके
- पर्याप्त ऊँचाई आरक्षित करें (कंटेनर का अंश या
autoHeight) — अन्यथा यह 1-पंक्ति फ़ील्ड बन जाता है। - टेक्स्ट जोड़ते समय (जैसे: log/chat) अंतिम पंक्ति दृश्यमान रखने के लिए
scrollToBottom()का उपयोग करें।
आम गलतियाँ
- ऊँचाई सेट न करना → क्षेत्र बहुत छोटा रहता है।
- क्षैतिज स्क्रॉलिंग की उम्मीद करना —
TextAreaपंक्ति तोड़ता है; एक स्क्रॉल करने योग्य पंक्ति के लिएTextFieldका उपयोग करें।
यह भी देखें
- टेक्स्ट फ़ील्ड · फ़ोकस और मान्यता
- कैटलॉग: TextArea · संदर्भ: अध्याय 14
क्या यह पृष्ठ उपयोगी था?प्रतिक्रिया के लिए धन्यवाद!