Câmp de introducere câmp Jtext

 KeyStroke getKeyStroke (String keyString) - toți parametrii sunt scrise într-o singură linie

keyString. Regulile de înregistrare sunt prezentate în documentație.

Obiectul clasei KeyStroke obținut prin apăsarea sau eliberarea cheii este apoi utilizat de obiectul de implementare a interfeței Keymap. Acest obiect specifică răspunsul la o apăsare de tastă sub forma unui obiect care implementează interfața Action. și stochează un set de perechi de chei de acțiune cheie din tipul "KeyStroke-Action". Interfața Action este descrisă în







Acest mecanism pentru specificarea răspunsului la acțiunile de la tastatură înlocuiește procesarea obișnuită a evenimentelor tastaturii prin adăugarea unui ascultător la componenta de text.

O nouă pereche "cheie-acțiune" este adăugată la set prin metoda

void addActionForKeyStroke (cheia KeyStroke, acțiunea a);

Întregul set de acțiuni sub forma unei matrice de acțiuni [] poate fi obținut prin metoda respectivă

getBoundActions (). și setul de obiecte KeyStroke [] prin metoda getBoundKeyStrokes (). distinct

Acțiunea este returnată de metoda getAction (KeyStroke).

Obiectele de tip Keymap pot fi legate într-un lanț prin specificarea unui obiect parent folosind metoda setResolveParent (Keymap). Dacă perechea "cheie-acțiune" nu este găsită în acest obiect, va fi căutată în obiectul părinte și apoi în lanț.

Biblioteca Swing nu implementează interfața Keymap cu o clasă deschisă. În schimb, implementarea este realizată de câmpul privat al clasei JTextComponent. Când creați o componentă de text, acest câmp este populate cu aspectul implicit al DEFAULT_KEYMAP. Puteți obține aspectul curent utilizând metoda getKeymap (). și setați unul nou utilizând metoda setKeymap (Keymap). Adăugați un nou aspect lantului folosind metoda statică

addKeymap (nume șir, cheie parentală);

Imprimați textul documentului

Câteva metode de imprimare logică () ale clasei JTextComponent determină afișarea pe ecran a casetei de dialog standard de imprimare, ajutând la selectarea unei imprimante și imprimarea conținutului componentei pe ea. Metodele returnează false. dacă utilizatorul a anulat imprimarea, făcând clic pe butonul Anulare din caseta de dialog și este adevărat altfel.

 print () - imprimă textul componentei fără anteturi și subsoluri.

 print (antet MessageFormat, MessageFormat footer) - imprimă partea de sus

antetul și subsolul footerului, formatate ca obiecte de clasă

MessageFormat din pachetul java.text.

Metodele de imprimare mai complexe și mai complexe folosesc serverul de imprimare, dar acest lucru este dincolo de scopul cărții noastre.

Deși structura internă a componentelor textului este dificilă, utilizarea obișnuită nu prezintă dificultăți.

Un câmp de intrare cu o singură linie este creat de unul dintre constructori:

 JTextField (coloane int) - un câmp de intrare gol, cu o fereastră a cărei dimensiune este suficientă pentru a găzdui coloane de simboluri. Puteți introduce orice număr de caractere în câmp, fereastra va derula;

 JTextField (text șir) - un câmp de introducere cu textul inițial;

 JTextField (text șir, coloane int) - un câmp de introducere cu textul textului inițial și lățimea -

caractere de caractere;

 JTextField (Doc document, String text, coloane int) - Specificați modelul de date doc.

Puteți înlocui modelul de date cu metoda setDocument (Document). Este permis să nu se înlocuiască întregul model, ci doar fontul - cu metoda setFont (Font).







Metodele moștenite de la JTextComponent. Puteți introduce text în câmpul de introducere folosind metoda setText (String). obțineți tot textul folosind metoda getText (). o parte a textului prin metoda getText (int offset, int length) sau doar partea selectată a textului prin metoda

Textul selectat în câmp poate fi înlocuit cu un alt text prin metoda

Implicit, textul din câmp este apăsat în stânga. Puteți schimba această regulă folosind

setHorizontalAlignment (int). specificând una dintre constantele din ea: STÂNGA. CENTER. DREAPTA. LEADING. TRAILING clasa JTextField.

Implicit, textul din câmp poate fi editat, dar este permisă crearea unui câmp numai pentru citire cu metoda setEditable (false) moștenită.

În câmp, puteți seta noul cursor utilizând metoda setCaret (Caret). Puteți modifica pur și simplu culoarea cursorului utilizând metoda setCaretColor (Color). Poziția cursorului poate fi urmărită utilizând metoda getCaretPosition (). și setați-o programabil cu metoda setCarePosition (int). Pentru a muta programat cursorul, selectând astfel o secțiune de text, puteți utiliza metoda moveCarePosition (int).

Limitele zonei selectate returnează metodele getSelectionStart () și getSelectionEnd (),

și set - metode setSelectionStart (int) și setSelectionEnd (int).

Culoarea textului selectat poate fi setată utilizând metoda setSelectedTextColor (Color). iar culoarea de fundal a textului selectat este setSelectionColor (Culoare).

Fișa 12.1 prezintă un exemplu de câmp de text pentru introducerea numai a cifrelor.

Listarea 12.1. Numărul câmpului de introducere

import java.awt. *; import javax.swing. *;

clasa publica NumberText extinde JFrame

JLabel l = JLabel nou ("Introduceți numere:");

super ("text"); setLayout (nou FlowLayout ());

// Introduceți filtrul de caractere de intrare

((PlainDocument) tf.getDocument ()). setDocumentFilter (noul NumărFilter ());

// Textul va fi evidențiat numai în roșu tf.setSelectedTextColor (Color.red);

// Când textul este selectat, fundalul rămâne alb tf.setSelectionColor (Color.white);

// Cursorul va fi roșu tf.setCaretColor (Color.red); l.setLabelFor (tf);

setSize (400, 400); setDefaultCloseOperation (EXIT_ON_CLOSE); setVisible (adevărat);

public static void principal (String [] args)

// Filtru de intrare

clasa NumberFilter extinde DocumentFilter

// Înlocuiți o singură metodă

public void insertString (FilterBypass fb, int-pos, text șir, AttributeSet attr)

Integer.parseInt (text); // Introduceți numărul?

// Dacă nu este o cifră, atunci caracterul nu intră în super.insertString (fb, 0, "", attr); return;

// Dacă este introdusă o cifră, puneți-o în câmpul super.insertString (fb, pos, text, attr);

Câmpul de introducere a parolei JPasswordField

Clasa JPasswordField extinde direct clasa JTextField. prin urmare, tot ceea ce sa spus înainte se referă la aceasta. O diferență este că în acest câmp, în loc de caracterele introduse, se repetă un caracter, implicit este un asterisc. Asteriscul poate fi înlocuit cu un alt caracter folosind metoda setEchoChar (char).

A doua diferență este că, în locul metodei getText (), getPassword () este folosit pentru a prelua text din câmpul de parolă. Returnează o matrice de caractere char []. nu un șir.

O altă extensie a clasei JTextField, clasa JFormattedTextField, este proiectată să funcționeze cu obiecte care conțin caractere, cum ar fi Data. Numărul. Cu toate acestea, con-

Structura clasei JFormattedTextField (Object) și metoda setValue (Object) permit

JFormattedTextField ftf = nou JFormattedTextField (noua dată ()); ftf.addActionListener (acest lucru);

// Editarea datei. Apoi apăsați tasta

public void actionPerformed (ActionEvent e)

Metoda getValue () returnează un obiect de tipul Object. Acesta este rezultatul transformării inverse a liniei editate în fereastră în obiectul original.

Clasa abstractă AbstractFormatter, încorporată în JFormattedTextField, convertește obiectul spre și din șir. Pentru a face acest lucru, are metode

valueToString (Object) și stringToValue (String). Aceste metode sunt lăsate abstracte. Po-

instalați (JFormattedTextField) din clasa AbstractFormatter sau folosiți const-

sau prin metoda setFormatter (AbstractFormatter) a clasei JFormattedTextField.

În plus față de transformarea obiectului, AbstractFormatter definește o instanță a clasei DocumentFilter și o instanță a clasei NavigationFilter. care pot fi obținute prin metode

rol - pentru a verifica și a filtra textul introdus în câmp, permițând numai anumite caractere.

În biblioteca Swing există o implementare a clasei AbstractFormatter - extensia sa

DefaultFormatter. Pentru a converti un obiect la un șir, metoda valueToString (Object) în







Articole similare

Trimiteți-le prietenilor: