Java felhasználói felület

Hasonló dokumentumok
Java felhasználói felület

Java Programozás 4. Gy: Java GUI. Tipper, MVC kalkulátor

Swing. (A javax.swing csomag)

Java Programozás 11. Ea: MVC modell

Java Programozás 9. Gy: Java alapok. Adatkezelő 5.rész

OOP: Java 8.Gy: Abstract osztályok, interfészek

C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18

Adabáziselérés ODBC-n keresztül utasításokkal C#-ban

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

Sztringkezelő függvények. A string típusú változók kezelése, használata és szerepük a feldolgozás során

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

és az instanceof operátor

SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Programozási nyelvek Java

Kivételek kezelése (exception handling) Hibakezelés old style. Kivételkezelés

Osztályok. 4. gyakorlat

Informatika terméktervezőknek

Access adatbázis elérése OLE DB-n keresztül

Szoftvertechnológia alapjai Java előadások

Szövegszerkesztés alapok

Java Programozás 8. Gy: Java alapok. Adatkezelő 4.rész

abkezel.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; public class abkezel extends JFrame {

Témák. Bevezetés az informatikába 7. Előadás. Szövegfile-ok típusai. Szövegszerkesztők típusai. Mértékegységek. Szövegszerkesztők szolgáltatásai

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

Objektumorientált programozás C# nyelven III.

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?

C# gyorstalpaló. Készítette: Major Péter

Objektumorientált programozás C# nyelven

Programozási nyelvek Java

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o

OOP #14 (referencia-elv)

OO PDO. Tehát PDO használatával, könnyen átállhatunk egy másik adatbáziskezelőre, anélkül hogy a kódot teljes egészében újraírnánk.

Szövegek C++ -ban, a string osztály

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

Java Programozás 6. Gy: Java alapok. Adatkezelő 2.rész

Adatbázisok webalkalmazásokban

Széchenyi István Egyetem. Programozás III. Varjasi Norbert

Java és web programozás

Programozási technológia

Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)

PHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II / 19

Nyíregyházi Egyetem Matematika és Informatika Intézete. Fájl rendszer

A gyakorlat során az alábbi ábrán látható négy entitáshoz kapcsolódó adatbevitelt fogjuk megoldani.

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

OOP: Java 4.Gy: Java osztályok

Java programozási nyelv 5. rész Osztályok III.

Kivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat

Programozás II. ATM példa Dr. Iványi Péter

C#, OOP. Osztályok tervezése C#-ban

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java

Swing GUI készítése NetBeans IDE segítségével

Input Output Műveletek

JAVA PROGRAMOZÁS 3.ELŐADÁS

Segédanyag: Java alkalmazások gyakorlat

Objektumorientált programozás C# nyelven III.

Szabadkai Műszaki Szakfőiskola. Web programozás. dr Zlatko Čović

Témák. Informatika I Eladás. Szövegfile-ok típusai. Szövegszerkesztk típusai. Mértékegységek. Szövegszerkesztk szolgáltatásai

INFORMATIKAI ALAPISMERETEK

Stateless Session Bean

Programozási nyelvek Java

Abstract osztályok és interface-ek. 7-dik gyakorlat

Java Programozás 7. Gy: Java alapok. Adatkezelő 3.rész

Programozási nyelvek Java

Objektumorientált programozás C# nyelven

Osztályok. construct () destruct() $b=new Book(); $b=null; unset ($b); book.php: <?php class Book { private $isbn; public $title;

TEXTAREA++ a JavaScript ereje

Java felhasználói felület

Tartalom DCOM. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés

ANDROID ALKALMAZÁSFEJLESZTÉS

Bánsághi Anna

Programozás alapjai. 5. előadás

Példa 30 14, 22 55,

OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1.

BME MOGI Gépészeti informatika 7.

Választó lekérdezés létrehozása

Két csomag elemeiből lehet a felületet elkészíteni: awt: heavy weight komponensek; swing: light weight komponensek (időben később).

Grafikus felhasználói felületek. Abstract Window Toolkit, a java.awt és java.awt.event csomagok

117. AA Megoldó Alfréd AA 117.

PHP alapjai, bevezetés. Vincze Dávid Miskolci Egyetem, IIT

A C# programozási nyelv alapjai

A Java nyelv. Dialógus ablakok. Elek Tibor

Segédanyag: Java alkalmazások gyakorlat

Objektumorientált Programozás IV.

1. Egyszerű (primitív) típusok. 2. Referencia típusok

Fejlett programozási nyelvek C++ Iterátorok

Programozási nyelvek II.: JAVA, 4. gyakorlat

Objektumok inicializálása

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás

Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni:

Objektum Orientált Programozás IV.

Bevezetés a C++ programozási nyelvbe

Globális operátor overloading

Az MS Excel táblázatkezelés modul részletes tematika listája

Java VI. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. Java VI.: Öröklődés JAVA6 / 1

Concurrency in Swing

BME MOGI Gépészeti informatika 8.

DKÜ ZRT. A Portál rendszer felületének általános bemutatása. Felhasználói útmutató. Támogatott böngészők. Felületek felépítése. Információs kártyák

A DERIVE kezelése. 1. A DERIVE ablaka. Amikor elindítod a DERIVE-ot ez az ablak jelenik meg:

Átírás:

Java felhasználói felület Text komponensek Elek Tibor

Text komponensek Fajtái: - JTextField: egysoros szöveg - JFormattedTextField: egysoros formázott szöveg - JPasswordField: egysoros szöveg echo karakterrel - JTextArea: többsoros sima szöveg - JEditorPane: többsoros formázott szöveg (TXT, HTML, RTF is) - JTextPane: többsoros formázott szöveg ( StyledDocument kezelés)

Közös ős Technikák: - dokumentum modell, dokumentum filter - caret, selection, navigation filter - highlight - actions, editor kit - inputmap

Dokumentum modell A text komponensben levő szöveg és műveletei, eseményei modellezése. A segítségével tudunk pl. reagálni a szöveg változásai eseményekre, vagy pl. átdefiniálhatjuk a dokumentum szerkezetét, műveleteit. Fajtái: - PlainDocument - DefaultStyledDocument - HTMLDocument

Dokumentum modell - PlainDocument: Nincsenek karakter jellemzők, sor strukturáltság. Használja JTextField, JPasswordField, JTextArea. Főbb műveletei: gettext(), getlength(), remove(), replace(), adddocumentlistener()

Dokumentum modell - DefaultStyledDocument: formázott, struktúrált szöveg. Dokumentum szerkezet (gyökérelem, abban szakaszok, azokban bekezdések, azokban karakterek). Szövegelemek (elements: bekezdésekben stílusok vannak (azonos attribútumú részek) - HtmlDocument: A HTML dokumentumok szerkesztésére, megjelenítésére specializált. - saját

Dokumentum filter A dokumentumnak lehet filter-je, amelynek megfelelő metódusa meghívódik minden dokumentum módosító művelet előtt. Ebben továbbíthatjuk vagy nem a műveletet. Ha egy beviteli mezőnél korlátozásokat akarunk érvényesíteni a bevitelkor, pl. max. hossz, érvénytelen karakterek, akkor használjuk.

Dokumentum filter Fajtái: - DocumentFilter: minden engedve - saját: A DocumentFilter insertstring, replace, remove felüldefiniálásával. Az insertstring, replace, remove fontosabb paraméterei: FilterByPass: segítségével elérhető a dokumentum, feltételeket tehetünk a dokumentum eddigi állapotával kapcsolatban. (pl. a dokumentum eddigi hossza, szerepel-e benne már egy bizonyos szöveg, stb.)

Dokumentum filter Az insertstring, replace, remove fontosabb paraméterei: String: a beszúrandó új szöveg. Feltételeket tehetek az új szövegre, meg is változtathatom. (pl. tiltott karakterek esetén nem szúrom be vagy megváltoztatom a beszúrandó szöveget). int offset, int length: A beszúrás (törlés) helye, mérete.

Dokumentum filter pl. felüldefiniálni a replace-et, hogy egy MAXCHAR-nál ne lehessen hosszabb a dokumentum. public void replace( ) { if (fb.getdocument().getlength() + s.length() < MAXCHAR) super.replace( ); }

Dokumentum filter Példa: FrmDokumentumPelda a) A text mezőben előforduló minden változás kiíródik a konzolra b) A text mezőbe nem írható a, A betű c) A text mezőbe beíródik egy fix elő szöveg, amely nem törölhető. (Van más megoldás is erre) d) A text mezőbe beírható szöveg hossza maximálva van. Egyenlőre csak kódból, egy MAXCHAR konstans segítségével.

Caret, Selection - Szöveg kurzor kezelés: szín, pozíció állítás, lekérdezés. - Kijelölés kezelés: kijelölés, kijelölés törlése, megváltoztatása, kijelölt szöveg megváltoztatása. - Szöveg kurzor mozgás események: reagálás a szöveg kurzor mozgatásokra. Fogalmak: caret dot, caret mark

Caret, Selection Funkciók: - JTextComponent-ből elérhető: get(set)caretcolor: szín get(set)caretposition: pozíció get(set)caret: Caret movecaretposition(): kijelölés addcaretlistener(): figyelés get(set)selectionend get(set)selectionstart: kijelölés selectall(): mind kijelölés

Caret, Selection getselectedtext(): kijelölt szöveg replaceselection(): kijelölt szöveg lecserélése get(set)selectedtextcolor: kijelölt szöveg színe get(set)selectioncolor: kijelölés színe

Caret, Selection - DefaultCaret funkciói: get(set)dot: kurzor pozíció movedot(): kijelölés getmark(): kijelölés egyik vége get(set)updatepolicy: caret módosulás a dok modosulásakor get(set)selectionvisible: kijelölés láthatósága get(set)blinkrate: kurzor villogás paint(): kurzor kirajzoló metódus

Navigation filter Szöveg kurzor mozgásának korlátozására. Fajtái: - NavigationFilter: minden engedve - saját, felüldefiniálható a setdot-ot és a movedot. Ezzel letiltható (megváltoztatható) a kurzor pozícionálás, kijelölés. Pl. bizonyos helyekre nem pozícionálhatunk, nem jelölhetünk ki.

Navigation filter Fontosabb paraméterek FilterByPass fb: elérni a Caret-t int dot: új pozíció, megvizsgálható, megváltoztatható Pl. public void setdot( ) { if (dot == 5 dot == 6) { if (fb.getcaret().getdot() < 5) dot = 7; else dot = 4;} super.setdot(fb, dot, bias); }

Caret, Selection Példa: FrmCaretSelNav a) Kódból változtatva a szöveg kurzort. b) Figyelni a szöveg kurzor változásait c) Kódból kijelölni szöveget háromféleképpen. d) Megakadályozni a szöveg kurzor bizonyos helyekre mozgását.

Highlight Kiemelt (háttérszinezéssel) részek kezelése. Interface, osztályok: Highlighter, DefaultHighlighter, LayeredHighlighter - DefaultHighlighter használat Highlighter h = txt.gethighlighter(); DefaultHighlightPainter dp = new DefaultHighlightPainter(Color.BLUE); h.addhighlight(1, 5, dp);

Actions Action objektumok a lehetséges akciókhoz. Action[] getactions() Editor kit Külön osztályba összefoglalva a lehetséges akció osztályok és akció nevek. Dokumentum típustól függően változik. DefaultEditorKit StyledEditorKit HtmlEditorKit

Actions, EditorKit használat - Akciók lekérdezése Action[] aa = txt.getactions(); - A megfelelő előkeresése (pl.) int hol; for (hol = 0; hol < aa.length; hol++) { if (aa[hol].getvalue(action.name).equals( DefaultEditorKit.deleteNextWordAction)) break; } - a GUI elemekhez rendelés this.btnvalami.setaction(aa[hol]); this.mivalami.setaction(aa[hol]);

Actions, EditorKit használat Példa: FrmActionPeldak Egy text mező, két gomb delete next word, Word End.

InputMap Gyorsbillentyűk Action objektumokhoz - Lekérdezés: InputMap im = txt.getinputmap(); Gyorsbillentyűk: KeyStroke[] ks = im.allkeys(); Akció pl.: Object a = im.get(ks[0]); - Új: KeyStroke k = KeyStroke.getKeyStroke(KeyEvent.VK_A, Event.CTRL_MASK); //ctrl-a im.put(k, DefaultEditorKit.deleteNextCharAction);

JTextField Szerep: Egysoros szöveg bevitel Fontosabb tulajdonságok: - Text - Columns - Editable - HorizontalAlignment - addactionlistener()

JPasswordField Szerep: Jelszó bevitel JTextField leszármazott Fontosabb tulajdonságok: - Text: Nem használatos!!! - EchoChar - char[] getpassword() - addactionlistener() Funkciók egy része letíltva (pl. copy)

JFormattedTextField Szerep: Egysoros formázott szöveg bevitel Működés - commit: text -> value - hogyan: a formatter segítségével, közben lehet ParseException - mikor: enter, focus elnyerésekor, elvesztésekor(*), commitedit()-re (*): FocusLostBehavior értéke COMMIT, vagy COMMIT_OR_REVERT - focus elvesztés megakadályozása az InputVerifier-rel

JFormattedTextField Fontosabb tulajdonságok: - Value : a mező tartalma (text helyett) - FormatterFactory : formatterek megadása, lásd köv. slide - FocusLostBehavior : focus elvesztésekor mi történjen (commit, revert, commit_or_revert) - addpropertychangelistener( value,) : tartalom változás figyelés - iseditvalid(): a jelenlegi text commitálható-e - commitedit(): commitálás, ParseException dobódhat - get(set)inputverifier

JFormattedTextField FormatterFactory Létezik AbstractFormatterFactory, DefaultFormatterFactory A DefaultFormatterFactory lehetővé teszi Null formátum, Edit formátum, Display formátum, Default formátum megadást. Minden formátumot Formatter-rel lehet megadni. (Minimum a Default formátumot meg kell adni.)

JFormattedTextField Formatter Szerepe a string->érték, érték->string konverziók elvégzése. (stringtovalue(), valuetostring()) Létezik AbstractFormatter, DefaultFormatter, MaskFormatter, InternationalFormatter, NumberFormatter, DateFormatter - Locale információk is megadhatók. - A formattereknek felüldefiniálható a getdocumentfilter(), getnavigationfilter() metódusa is.

JFormattedTextField Pl. JFormattedTextField f = new JFormattedTextField(); //formatter létrehozás pl. NumberFormatter nf = new NumberFormatter( new DecimalFormat("#0%")); //vagy pl. //NumberFormatter nf = new NumberFormatter( // NumberFormat.getIntegerInstance()); //factory létrehozás f.setformatterfactory( new DefaultFormatterFactory(nf));

JFormattedTextField InputVerifier Nem csak szöveg komponensek használják. A focus elvesztésének engedélyezésére vagy megakadályozására szolgál. Használata például: egész szám bevitele, de nem bármilyen értékkel. Abstract osztály, a verify metódust kell felüldefiniálni a leszármazottnak. class JegyVerifier extends InputVerifier { public boolean verify(jcomponent input) { JFormattedTextField tf = (JFormattedTextField)input; long szam = 0; try { tf.commitedit(); if (tf.getvalue()!= null) szam = (Long)tf.getValue(); } catch (ParseException e) { return false; } return szam>0 && szam<6; } }

JFormattedTextField Példa: FrmFormatted - egész számok bevitelére formázva, value változás figyeléssel, InputVerifier-rel - valós számokra formázva - valós számokra formázva Locale megadással - pénz bevitel, az edit formátum valós, a többi formátum pénznem - Saját formattert használva a NumberFormatter-t felüldefiniálva, document filter-t megadva - Saját formattert használva az AbstractFormetterből kiindulva.

JTextArea Szerep: Többsoros szöveg bevitel Fontosabb tulajdonságok: - Text - Columns, Rows - Editable - LineWrap, WrapStyleWord - append(), insert(), replacerange() - getlinecount() - getlinestartoffset(), getlineendoffset() - getlineofoffset()

JTextArea Scrollozás - JScrollPane-be rakva JScrollPane sp = new JScrollPane(); JTextArea ta = new TextArea(20, 5); sp.setviewportview(ta); - HorizontalScrollBarPolicy, VerticalScrollBarPolicy

JEditorPane, JTextPane Szerep: formázott több soros szöveg - text/plain, text/html, text/rtf kezelés - betöltés funkció: read(), setpage(url), setpage(string), JEditorPane(Url) - tartalomtól függően változó EditorKit Különbség - JTextPane a JEditorPane leszármazottja - JTextPane csak StyledDocument, StyledEditorKit, míg JEditorPane akár PlainDocument is. - JTextPane kivezetett funkciók a dokumentum kezelésére (addstyle(), inserticon(), stb.)

Gyakorlat Készítsünk egy űrlapot, amelyen van egy JTextField, amely csupa nagy betűsen jelenít meg minden beleírt szöveget. Használjuk a Key eseményeket a megoldáshoz. Legyen még egy JTextField meg egy JTextArea, amely a DocumentFilter-t használja a megoldáshoz.

Gyakorlat Készítsünk egy űrlapot, amelyen van egy JTextField, amely szövegszíne editálás közben piros. (focus események) Készítsen egy JFormattedTextField-et, amelyik pénznem formátumot használ megjelenítéskor és szám formátumot editáláskor. Készítsen egy JFormattedTextField-et, amely csak 150-től kisebb pozitív egész számok bevitelére alkalmas, legyen olyan DocumentFilter-e, hogy ne is lehessen nem számot beleírni. Legyen olyan InputVerifier, hogy ne lehessen a bill. Fokuszt átadni, ha nem megfelelő szám van benne.

Gyakorlat Készítsünk egy űrlapot, amelyen van egy JTextPane. Készítsen menüket és gombokat néhány kezelő funkcióhoz. Pl. vastagítás, aláhúzás. Használjon akciókat.