Java felhasználói felület

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

Grafikus felhasználói felületek. Dr. Szendrei Rudolf Informatikai Kar Eötvös Loránd Tudományegyetem. Programozási technológia I. Dr.

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).

Programozási technológia

Java Programozás 3. Gy: Java GUI. Swing, AWT

Szoftvertechnológia alapjai Java előadások

Adatbázis alapú rendszerek gyakorlat Adatbázis alapú alkalmazásfejlesztés Java, C# környezetben

Swing. (A javax.swing csomag)

Grafikus felületek a programozó szempontjából grafikus elemek absztrakt reprezentációja az egyes elemek tulajdonságait leíró adatstruktúrák.

Grafikus felületek készítése 1.

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

VI. Grafikus Java alkalmazások

Programozás III GRAFIKA RAJZOLÁS SWING FELÜLETEN RAJZOLÁS GRAFIKA HASZNÁLATA. Rajzolni az awt csomag Graphics osztályának metódusaival tudunk.

JAVA PROGRAMOZÁS 5.ELŐADÁS

Java Programozás 11. Ea: MVC modell

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

Programozási technológia

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

libgdx alapok, első alkalmazás

Diplomamunka. Koczka László

Tartalomjegyzék 3 TARTALOMJEGYZÉK

I. fejezet Hello Világ! Programozás tankönyv. II. Fejezet. Helló Világ! avagy a Miért?-ek elkezdődnek

Java és web programozás

Dr. Pétery Kristóf: CorelDRAW 9 testre szabás

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

FELHASZNÁLÓI ÚTMUTATÓ

GroupWise 5.2 használói jegyzet

IBM Business Process Manager változat 8 alváltozat 5. Munkaerő-felvételi oktatóanyag

KETTŐS KÖNYVELÉS PROGRAM CIVIL SZERVEZETEK RÉSZÉRE

BBS-INFO Kiadó, 2013.

eseményvezérelt megoldások Vizuális programozás 5. előadás

Word 2010 magyar nyelvű változat

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás:

GroupWise 5.2 használói jegyzet

Java programozási nyelv 8. rész Grafikus felhasználói felület

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

JAVA PROGRAMOZÁS 4.ELŐADÁS

MAGYAR POSTA BEFEKTETÉSI ZRT. e-befektetés. Felhasználói kézikönyv

OBJEKTUMORIENTÁLT TERVEZÉS ESETTANULMÁNYOK. 2.1 A feladat

Adatközpont-központ: Storage Made Easy Regisztráció

JAVA SE/ME tanfolyam tematika

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

Az Excel programozása

II. év. Adatbázisok és számítógépek programozása

A Java nyelv. Dialógus ablakok. Elek Tibor

ETR Pénzügyi közönségszolgálat

IV. Szakmai szolgáltatások funkcionális tervezése

Mérési útmutató a Mobil Kommunikáció és Kvantumtechnológiák Laboratórium méréseihez

Számlakészítés a SPRINT programmal

Symbol P360/P460 Felhasználói kézikönyv v 1.0

Aronic Főkönyv kettős könyvviteli programrendszer

Készítette: Citynform Informatikai Zrt.

Microsoft Office 2010

Intézményi felhasználók karbantartása, jogosultság beállítása. Felhasználói dokumentáció. 1 / 9 oldal

Elemi alkalmazások fejlesztése IV. Adatbázis-kezelés ActiveX vezérlıkkel - 1

Java Programozás 8. Ea: GUI. Graphical User Interface

Pénztárgép Projektfeladat specifikáció

Java felhasználói felület

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

A dokumentum lapméretének és a margóinak a beállítását a menüszalag Lap elrendezése lapján tehetjük meg. Külön állítjuk be a lapméretet.

Access 2010 Űrlapok és adatelérés

Java felhasználói felület

Elıírt lépésszámú ciklusok

Vényírás. 1. ábra. 1. oldal

Java és web programozás


VÁLLALATIRÁNYÍTÁSI ÜGYVITELI PROGRAMRENDSZER. Váradi László OKTATÁSI SEGÉDANYAG. 2012/13. tanév 2. szemeszter 8. foglalkozás

Kisvállalkozások könyvelése. Infotéka Kft. programjaival

Hello World Servlet. Készítsünk egy szervletet, amellyel összeadhatunk két számot, és meghívásakor üdvözlőszöveget ír a konzolra.

FELHASZNÁLÓI KÉZIKÖNYV

Eseménykezelés Java környezetben, AWT alapok

P-GRADE fejlesztőkörnyezet és Jini alapú GRID integrálása PVM programok végrehajtásához. Rendszerterv. Sipos Gergely

Széchenyi István Szakképző Iskola

VIII. Szálak és animáció

El zetes Beállítások SL AUTOMATIKA KEZELÉSI ÚTMUTATÓ SL AUTOMATIKA KEZELÉSI ÚTMUTATÓ

KEZELÉSI SZABÁLYZAT. K&H tőkét részben előre fizető származtatott zártvégű értékpapír befektetési alap

Bonobo: A GNOME CORBA alapú komponens-megoldása Unixokra

Objektumorientált programozás C# nyelven

.NET Microsoft.Net Framework

Java I. A Java programozási nyelv

NeoSzámla Használati Útmutató. Verziószám: 2014/Q2 Kelt: neoszamla.hu

Kitöltési útmutató a muzeális intézményekről szóló OSAP 1444-es adatgyűjtő kérdőívhez

3. gyakorlat. 1/7. oldal file: T:\Gyak-ArchiCAD19\EpInf3_gyak_19_doc\Gyak3_Ar.doc Utolsó módosítás: :57:26

A DITAL honlap kezelése (

NFSZ INTEGRÁLT INFORMÁCIÓS RENDSZER KTK KÖZFOGLALKOZTATÁSI TÁMOGATÁSOK KERETRENDSZERE. Országos közfoglalkoztatási program

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

Programozás III CSOMAGOK. Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek.

KELE3. Felhasználói kézikönyv

Általános Üzleti Feltételek Lyoness Ügyfelek számára november

Az Összetett hálózatok vizsgálata elektronikus tantárgy részletes követeleményrendszere

INFORMATIKAI ALAPISMERETEK

JOGI ADATBANK CompLex.hu. Hatalmas adatbázis, hatalmas lehetőségekkel az interneten.

KR TITKOSÍTÓ PROGRAM. Felhasználói leírás. v március 12.

X10 mini pro. Kibővített használati útmutató

Programozás II gyakorlat. 4. Öröklődés

A beszerzési logisztikai folyamat tervezésének és működtetésének stratégiái II.

VÁLLALATIRÁNYÍTÁSI ÜGYVITELI PROGRAMRENDSZER. Váradi László OKTATÁSI SEGÉDANYAG. XIII. kötet

2,6 millió magyar család életében szeptember 1-je fordulópontot jelent. Ekkortól lépett életbe az Európai Unió új szabálya, mely alapjaiban

FELHASZNÁLÓI KÉZIKÖNYV

Café. Hírek Újdonságok Nyelvtanulás Ingyenes próbaleckék

Átírás:

Java felhasználói felület Alapfogalmak Komponens alapok Elek Tibor

GUI-val kapcsolatos fogalmak Eseményvezérelt program Program futás: - induló állapot (induló UI) megjelenítése, - eseménykezelő végtelen ciklus elindítása. Programozás: - felhasználói felületek összepakolása (többnyire előre megírt) komponensekből (létezik kényelmes grafikus fejlesztő környezet rá), - eseménykezelések megírása, az események hatására többnyire a felhasználói felületen módosítunk.

GUI-val kapcsolatos fogalmak Grafikus komponensek - Építő elemek, amelyekből felépítünk egy UI-t. (pl. nyomógomb, menü, lista, stb.) Beszerzése: - Léteznek előre megírtak (swing része) - Készen beszerzett - Lehetséges új komponensek gyártása a meglévők módosítgatásával (leszármaztatás). - Lehetséges új komponensek gyártása a meglevők összepakolásával. - Lehetséges teljesen új komponens létrehozása.

GUI-val kapcsolatos fogalmak Grafikus komponensek, Csoportosítás 1: 1. egyszerű komponens (pl. JList, JPanel) 2. összetett komponens (pl. JFileChooser)

GUI-val kapcsolatos fogalmak Grafikus komponensek, Csoportosítás 2: 1. Konténer komponensek: beletehetők más komponensek, akár konténerek is. Tovább csoportosítható: A) csúcs konténer: az ablakozó rendszer ablakot biztosít neki (pl. Jframe, JDialog) (egy alkalmazás főablaka vagy felbukkanó párbeszéd ablaka), B) nem csúcs konténer: nincs saját ablaka (pl. JPanel), szerepe a belerakott komponensek csoportosítása. 2. Elemi komponensek: Nem tehetők bele más komponensek. (pl. JButton, JLabel)

GUI-val kapcsolatos fogalmak Komponens fa - A komponensek egymásba tehetők -> szülőgyermek reláció - Szülő komponens: az a konténer, amelybe beleraktunk egy másik komponenst - Gyermek komponens: az a komponens (lehet konténer), amelyet beleraktunk a konténerbe. - A gyermekeknek lehetnek gyermekei. Tehát fastruktúra alakul ki, amelynek a csúcsa egy csúcs konténer lehet. - Szülő felelős a gyermekei megjelenéséért (de nem ő jeleníti meg, később részletesen)

GUI-val kapcsolatos fogalmak Komponens fa JFrame JPanel JButton JPanel Jlabel, JTextField Jlabel, JTextField Jbutton Jbutton Jbutton

GUI-val kapcsolatos fogalmak Komponens tulajdonságai A tulajdonságainak beállításával testre szabhatjuk a komponenst. A tulajdonságok komponensenként mások, de vannak minden komponensre jellemzőek, pl. megjelenéssel kapcsolatosak: méret, pozíció, stb. A közös tulajdonságok célszerűen a közös ősben definiáltak.

GUI-val kapcsolatos fogalmak Komponensek eseményei A komponenseken események történhetnek (többnyire felhasználói akciók), amelyekre reagálhatunk, azaz írhatunk kódot, ami meghívódik az esemény hatására.

GUI-val kapcsolatos fogalmak Események - Többnyire felhasználói akciók (pl. egér mozgatása, billentyű leütés), de lehetnek komponens események is (pl. ablak eltakaródása, scrollbar scrollozódása) - Az eseménynek van forrása: az a komponens, amelyen keletkezett az esemény (pl. egér kattintás esetén, amely felett állt az egér, billentyű leütésnél amelyik a billentyű fókusz)

GUI-val kapcsolatos fogalmak Esemény kezelés - A keletkezett események egy várakozó sorba kerülnek, ahonnan az eseménykezelő végtelen ciklus kiveszi és feldolgozza. Azaz leegyszerűsítve: meghívja a programozó által ehhez az eseményhez írt eseménykezelő kódokat. Amelyik eseményhez nem írunk eseménykezelő kódot, arra nem történik semmi.

GUI-val kapcsolatos fogalmak Program szerkezete Egy GUI program esetén szokás, hogy minden csúcs konténer (ablak) külön osztályban van definiálva. Ebben található az ebből a csúcsból induló komponensfa összepakolása, valamint az ezekhez tartozó eseménykezelő kódok. Természetesen kell egy main metódus valahol, amelynek feladata megjeleníteni az alkalmazás fő ablakát. Egy minimum program, tehát egy osztály, amelyben a főablakot pakoljuk össze és írjuk meg az ezeken előfordulható eseményekre reagálást.

GUI-val kapcsolatos fogalmak Program futása Egy GUI-s java program futtatása ugyanúgy, mint bármely más programé. Fontos tudni viszont, hogy az első grafikus komponens megjelenítéskor a JVM elindít egy eseménykezelő szálat, ebben fut majd az összes eseménykezelő kód. A programozó feladata gondoskodni arról, hogy ne lépjen fel konkurencia probléma. Erről a témáról később részletesen lesz szó.

GUI-val kapcsolatos fogalmak Elrendezés szervezők - A konténerbe betett gyermek komponensek pozíciója, mérete függhet a körülményektől (pl a képernyő felbontás, hány gyermek komponens van), ezért nem célszerű a programozónak ezeket fixen megadni. - Az elrendezés szervező olyan objektum, amely valamilyen szabályrendszer alapján automatikusan beállítja a gyermek komponensek pozícióját, méretét. - Többféle elrendezés szervező létezik, amelyek a szabályrendszerükben különböznek egymástól. - A programozó kiválasztja, beállítja paramétereit, majd hozzárendeli a konténerhez.

GUI-val kapcsolatos fogalmak Grafikus fejlesztőeszköz (GUI designer, visual designer) Olyan grafikus programozási eszköz, amely lehetővé teszi - a komponensek összepakolgatását grafikus felületen a komponensek húzásával, - a komponensek tulajdonságainak megnézését, beállítását grafikus felületen - a kód legenerálását - stb. Használata jelentősen megkönnyíti a fejlesztést.

GUI-val kapcsolatos fogalmak Grafikus fejlesztőeszköz Fajtái: - Tiszta java kódot adó: a designer java kódot generál és java kódot olvas fel, más file-t nem használ, plusz meta adatot nem tárol. - Meta adat is keletkezik fejlesztés közben: java kódot + meta adatot tárol és olvas fel, de a végére java osztály keletkezik - Meta adatot használ: java kódot és meta adatot is generál és használ

GUI-val kapcsolatos fogalmak Grafikus fejlesztőeszköz Eszközök: több ingyenes és fizetős is van. A NetBeans beépítve tartalmazza (2. fajtájú) Az Eclipse-nél külön telepíteni kell. Lehet az eclipse saját designer-t (Eclipse VE (Visual Editor) 1. fajtájú) vagy sok más által készítettet.

A Java GUI eszközei AWT (Abstract Window Toolkit) - a korábbi megvalósítás - cél: hardverfüggetlenség, platform függetlenség - cél megvalósítása: nehéz súlyú komponensekkel, azaz a gép ablakozó rendszerétől kéri a komponens létrehozását, megjelenítését. Ennek hátrányai: 1. eltérő ablakozó rendszerben, eltérő megjelenés 2. a komponensek kinézete nem változtatható 3. csak olyan komponensek lehetnek, amelyek minden ablakozó rendszerben léteznek, tehát csak a legalapvetőbb komponensek - Ma már a grafikus komponenseit nem használjuk, a többi részét (pl. eseménykezelés, egyéb komponensek) igen.

A Java GUI eszközei Swing - újabb megoldás - a cél a ua. mint AWT, de annak hibái nélkül - megoldás: pehelysúlyú komponensek, azaz teljesen java-ban megvalósított komponensek, amelyek csak az alapvető rajzolási funkciókat kéri az ablakozó rendszertől. - előnyei: 1. a kinézet is programozható 2. sok grafikus komponens 3. könnyen létrehozható új grafikus komponens - egyéb jellemzők: 1. több más újdonság is, 2. átgondoltabb, teljesebb lett

A Java GUI eszközei Swt (Standard Widget Toolkit) - nem része az alap csomagoknak, nem a Sun terméke, az eclipse-hez fejlesztették ki. - a swing alternatívája - platform függő native könyvtárat használ, így nem létezik minden platformra, viszont egy kicsit gyorsabb

Swing grafikus komponensei Leszármazási hierarchia A csúcs konténerek kivételével minden komponens közös őstől származik: - Az összes komponens őse: java.awt.component - Ennek leszármazottja a konténerek őse: java.awt.container - Ennek leszármazottja a swing komponensek őse: javax.swing.jcomponent

Swing grafikus komponensei Leszármazási hierarchia Az összes komponens őse: java.awt.component Alapvető műveletei: +méret (get(set)size(), get(set)bounds(), get(set)preferredsize(), get(set)maximumsize(), get(set)minimumsize()), +pozíció (get(set)location(), get(set)bounds()), +színei (get(set)background(), get(set)foreground()), +betűtípus (get(set)font(), getfontmetrics()), +Locale (get(set)locale()), +engedélyezettség (get(set)enabled()), +láthatóság (get(set)visible()), +néhány eseménykezelő hozzáadás, levétel (pl. add(remove)mouselistener()), +kirajzolás, újrakirajzolás (paint(), repaint())

Swing grafikus komponensei Leszármazási hierarchia - java.awt.container: Az, az awt-s konténerek szülője, az összes swing-es komponens szülője: tartalmazza a konténer műveleteket: +gyermek hozzáadása (add()), +gyermek levétele (remove(), removeall()), +elrendezés szervező (get(set)layout()), +gyermek infok (getcomponentcount(), getcomponentat(), findcomponentat(), getcomponents(), get(set)componentszorder()) +stb.

Swing grafikus komponensei Leszármazási hierarchia - javax.swing.jcomponent: a csúcs konténerek kivételével a többi swing-es komponens szülője. Tartalmazza a Component osztályban definiált alapvető műveletek felüldefiniálásait, valamint a swing új szolgáltatásainak műveleteit pl. : +Look&Feel, +keret (get(set)border()), +tooltip (get(set)tooltiptext()), +gyorsbillentyűk, akciók, +átlátszóság (setopaque()), +stb.

Swing grafikus komponensei Komponensek elnevezése A név ne csak a tartalomra utaljon, hanem a komponens fajtájára. Szokás 1: első 2-3 betű a fajta, a többi a tartalom, pl: btnmodositas, txtnev, stb.

Swing grafikus komponensei Komponens használata 1. Komponens létrehozása (példányosítás) 2. Testreszabás (tulajdonságainak (pl. méret, pozíció, stb.) beállítása) 3. Viselkedésének megadása (lásd események) 4. Beillesztés a komponensfába

Swing grafikus komponensei Komponens elhelyezése - NetBeans-ben - Kódban: példa program részlet Létrehozás: JButton btnvalami = new JButton( Valami ); Testreszabás és eseménykezelők bejegyzése: btnvalami.setbounds(10, 10, 300, 50); btnvalami.setfont(new java.awt.font( Arial, 0, 12)); Beillesztés a komponensfába: pnlkont.add(btnvalami); Ha a konténernek van beállítva elrendezés-szervező, akkor a méret és pozíció beállításoknak nincs hatása.

Swing grafikus komponensei Komponens eltüntetése vagy Láthatatlanná btnvalami.setvisible(false); vagy Eltávolítás a komponensfából: pnlkont.remove(btnvalami);

Swing grafikus komponensei Csúcs konténerek - Az awt-s csúcs konténerekből származnak, nem a JComponent-ből, tehát nehézsúlyú komponensnek számítanak (ablakot az ablakozó rendszertől lehet csak kérni). A swing-es csúcs konténerek: +JFrame: egy alkalmazás fő ablaka, +JDialog: egy alkalmazás feldobódó ablaka, +JApplet: a weboldalba beágyazható java alkalmazások főablaka.

JFrame Összetett komponens, már eleve tartalmaz néhány komponenst. Fontosabb metódusok: -JFrame(), JFrame(String): létrehozás, alapértelmezésben láthatatlan -get(set)contentpane(): a tartalom panel lekérdezése beállítása -get(set)jmenubar(): a menüsor lekérdezése, beállítása -get(set)defaultcloseoperation(): az ablak bezárásra hogyan reagáljon a program -pack(): az ablak és összes komponensének átméretezése a preferált méretek alapján

JFrame Létrehozása JFrame frmform = new JFrame(); Testreszabás: Pl. frmform.setbounds(0,0,400,300); frmform.setdefaultcloseoperation(jframe.exit _ON_CLOSE); Komponensek belepakolása Nem közvetlenül a frame-re, hanem a tartalompanelre. Megjelenítés frmform.setvisible(true);

Grafikus Helló világ import javax.swing.*; public class HelloGr { public static void main(string[] args) { JFrame frmfoablak = new JFrame("Grafikus Hello"); frmfoablak.setbounds(0,0,400,300); frmfoablak.setdefaultcloseoperation(jframe.exit_on_close); frmfoablak.getcontentpane().setlayout(null); JLabel lblfelirat = new JLabel("Helló világ"); lblfelirat.setbounds(10, 10, 200, 200); frmfoablak.getcontentpane().add(lblfelirat); frmfoablak.setvisible(true); } } - A setdefaultcloseoperation nélkül a program nem állna le az ablak bezárásakor (fejléc x gomb) - A frame tartalom paneljének ki kapcsoljuk az elrendezés szervezőjét (alapértelmezés szerint van neki beállítva egy.

Grafikus Helló világ 2 Ugyanez még egyszer egy kicsit helyesebben: - elrendezés szervezőre bízva a méret és pozíciókat - Az eseménykezelő szálban létrehozva a GUI-t, bár erre mivel most nem kezelünk eseményt (így nem fordulhat elő konkurencia probléma) nincs szükség. - Újdonság ennél a megoldásnál a pack(), amely átszámoltatja az elrendezés szervezőkkel a méreteket, pozíciókat, valamint a SwingUtilities.invokeLater, amely az eseménykezelő szálban futtatja a kódot

Grafikus Helló világ 2 import javax.swing.*; public class HelloGr2 { private static void createandshowgui() { JFrame frmfoablak = new JFrame("Grafikus Hello"); frmfoablak.setdefaultcloseoperation(jframe.exit_on_close); JLabel lblfelirat = new JLabel("Helló világ"); frmfoablak.getcontentpane().add(lblfelirat); frmfoablak.pack(); frmfoablak.setvisible(true); } public static void main(string[] args) { javax.swing.swingutilities.invokelater(new Runnable() { public void run() { createandshowgui(); } }); } }

Gyakorlat Példa 1. Egy JButton, egy JPanel, és a panelbe két újabb JButton elhelyezése (kétféle módon elkészítve).