Beviteli mező JTextField

 billentyűleütés getKeyStroke (String keyString) - minden paraméter meg van írva egy sorban

keyString. belépési szabályokat, lásd a dokumentációt.

A kapott billentyűleütés megnyomásával vagy elengedésével objektum osztály gombbal ezután tárgy végrehajtási Keymap felület. Ezt a feladatot állítja, hogy a reakció gombnyomás, mint egy tárgy, amely megvalósítja az interfészt Action. és tárolja egy sor pár „gomb - akció” típusú „billentyűleütés - Action”. Action felület van leírva

Egy ilyen reakció mechanizmus munkát akciók billentyűzet helyettesíti a hagyományos feldolgozási billentyűzet esemény hallgatót a mellett, hogy a szöveges.

Egy pár új „gombot - action” hozzá, a módszer

érvényteleníti addActionForKeyStroke (billentyűleütés kulcs, Action a);

Az egész sor intézkedést formájában egy tömb típusú Action [] úgy állíthatjuk elő,

getBoundActions (). egy sor tárgyak billentyűleütés [] - módszer getBoundKeyStrokes (). különálló

Noe Cselekvő visszatér getAction módszer (billentyűleütés).

Keymap típusú tárgyakat lehet láncolt beállításával a szülő objektum által setResolveParent (Keymap). Ha a pár „gomb - akció” lenne megtalálható nem a tárgy, akkor lehet keresni a szülő objektum, továbbá a lánc mentén.

Swing könyvtár nem hajt végre egy nyitott felület Keymap osztályban. Ehelyett a végrehajtásuk a lezárt területen JTextComponent osztályban. Amikor létrehoz egy szöveges elemet, ezen a területen töltött az alapértelmezett elrendezés DEFAULT_KEYMAP. Kap az aktuális elrendezés lehet getKeymap () metódust. és helyezzen be egy újat - a setKeymap (Keymap). Új elrendezés a lánc lehet egy statikus módszer

addKeymap (String név, Keymap szülő);

A dokumentum nyomtatása szöveges

Számos logikai módszereket print (class JTextComponent) hatására a megjelenése a képernyőn a szabványos nyomtatási párbeszédablak, amely segít kiválasztani a nyomtatót, és nyomtassa ki a tartalmát a komponens rajta. Módszerek return false. ha a felhasználó törölte a nyomtatási kattintva a Mégse gombra a párbeszédablakban, és egyébként igaz.

 print () - print komponens szöveg nélkül fejlécek és a lábjegyzetek.

 print (MessageFormat fejléc, lábléc MessageFormat) - adunk a felső tömítés

fejléc és lábléc az alsó fejléc, lábléc, amelynek célja egy osztály tárgyak

MessageFormat a java.text csomagot.

Egyéb, kifinomultabb nyomtatási technikák használja a nyomtatószerver, de ez túlmutat e könyv.

Bár a belső szerkezete a szöveg komponenst nehéz, a normál használat nem okoz nehézségeket.

A egysoros beviteli mező által létrehozott egyik a tervezők:

 JTextField (int oszlop) - az üres beviteli mezőben egy ablak, amelynek mérete elegendő befogadására oszlopok szimbólumok. A mezőben megadhatja tetszőleges számú karakter, akkor az ablak lépjünk;

 JTextField (String text) - beviteli doboz eredeti szöveg;

 JTextField (String szöveg, int oszlop) - beviteli mező az eredeti szöveg és a szöveg szélessége

sósav oszlopok szimbólumok;

 JTextField (doc, string szöveg, int oszlop) - meghatározott adatmodell doc.

Az adatok modell lehet helyettesíteni setDocument (Document). Nem megengedhető, hogy cserélje ki a teljes modellt, és csak font - a setFont (Font).

Módszerek örökölt JTextComponent. lehetővé teszi, hogy helyezze el a szöveget a beviteli mezőbe SetText (String). kap az összes szöveget módszer gettext (). része a szöveg módszer gettext (int offset, int hossz), vagy csak egy kiválasztott részét a szöveg

Kiemelt szöveg egy olyan területen lehet helyettesíteni más szöveges tartalom

Az alapértelmezett szöveg a mezőben van nyomva a bal oldalon. A változás általában lehetséges

setHorizontalAlignment (int). kérve ez a állandók: BAL. CENTER. JOBB. VEZETŐ. FÉKSZÁRNYAK osztály JTextField.

Az alapértelmezett szöveg a mezőben lehet szerkeszteni, de hozhatnak létre egy csak olvasható mező öröklik setEditable (hamis).

A területen, akkor meg egy új kurzort setCaret (kalap). Ez lehetővé tette, csak változtatni a színét a kurzort setCaretColor (színes). A helyzet a kurzor követhető getCaretPosition (). egy sor szoftver - módszer setCaretPosition (int). Kurzor mozgatása programozott kiválasztásával a szöveg része ilyen módon, hogy lehetséges moveCaretPosition (int) módszerrel.

A határait a kiválasztott részét visszajuttatjuk getSelectionStart () és getSelectionEnd (),

és állítsa - módszerek setSelectionStart (int) és setSelectionEnd (int).

A szín a kijelölt szöveget, megadhatja az eljárás setSelectedTextColor (Color). és a háttér színe a kijelölt szöveg - a setSelectionColor (Color).

Listing 12.1 példa egy szöveges beviteli mező a számok önmagukban.

Listing 12.1. Digit Field

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

public class NumberText kiterjed JFrame

JLabel l = new JLabel ( "Adja meg a számot:");

super ( "szöveg"); setLayout (új FlowLayout ());

// Helyezze a szűrő bemeneti karakterek

((PlainDocument) tf.getDocument ()). setDocumentFilter (új NumberFilter ());

// A szöveg osztják csak vörös tf.setSelectedTextColor (Color.red);

// Ha kiválasztja szöveg háttere fehér marad tf.setSelectionColor (Color.white);

// kurzor piros tf.setCaretColor (Color.red); l.setLabelFor (TF);

setSize (400, 400); setDefaultCloseOperation (EXIT_ON_CLOSE); setVisible (true);

public static void main (String [] args)

// szűrő bemeneti

osztály NumberFilter kiterjed DocumentFilter

// felülírása egy módszer

public void insertString (FilterBypass fb, int pos, string szöveg, AttributeSet attr)

Integer.parseInt (szöveg); // Írja be a számokat?

// Ha nem az alak, a szimbólum nem lép super.insertString (fb, 0, "", attr); return;

// Ha beírja a számokat, akkor be kell vezetni a pályáról super.insertString (fb, pos, szöveg, attr);

jelszó mező JPasswordField

JPasswordField osztály közvetlenül kiterjed a JTextField osztályban. ezért neki tartozik mindent mondott korábban. Az egyik különbség az, hogy ezen a területen megismételjük egy karaktert, az alapértelmezett helyett karakter bemenet - csillaggal. Egy csillag lehet cserélni egy másik karakter módszerrel setEchoChar (char).

A második különbség az, hogy ahelyett GetText () metódus getPassword () módszerrel, hogy a szöveget a jelszó mezőbe. vissza egy tömbben típusú char [] karaktereket. helyett egy string.

Tovább kiterjesztése az osztály JTextField - class JFormattedTextField - tervezték, hogy a tárgyak, amelyek szimbólumok, mint a dátum. Száma. Ugyanakkor a meg-

struktor JFormattedTextField osztály (Object) módszer és setValue (Object) engedély tartalmazza

JFormattedTextField FTF = new JFormattedTextField (new Date ()); ftf.addActionListener (e);

// szerkesztése a dátumot. Ezután nyomja meg a gombot

public void actionPerformed (ActionEvent e)

getValue () módszer visszaadja az objektum típusát Object. a kapott inverz transzformációt szerkesztett in-line ablak az eredeti objektumot.

Az átalakulás a tárgy egy string vissza fektettek be JFormattedTextField absztrakt osztály AbstractFormatter. Ebből a célból, hogy van módszerek

valueToString (objektum) és stringToValue (karakterlánc). Ezek a módszerek a bal elvont. Po

Todd telepíteni (JFormattedTextField) AbstractFormatter osztály vagy használja konst-

vagy setFormatter (AbstractFormatter) osztály JFormattedTextField.

Emellett tárgy transzformáció, AbstractFormatter meghatározza egy másik esetben az osztály és a példány DocumentFilter NavigationFilter osztályban. amely lehet módszerekkel kapott

szerep -, hogy ellenőrizze, és szűrjük le a szöveget, hogy csak bizonyos karaktereket a területen.

A Swing könyvtár megvalósítása egy osztály AbstractFormatter - annak meghosszabbítását

DefaultFormatter. Hogy az objektum egy string eljárás valueToString (Object) a

Kapcsolódó cikkek