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); 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) ajelszó mező JPasswordField
Kapcsolódó cikkek