Java programozsi nyelv 8 rsz Grafikus felhasznli fellet

  • Slides: 17
Download presentation
Java programozási nyelv 8. rész – Grafikus felhasználói felület Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar

Java programozási nyelv 8. rész – Grafikus felhasználói felület Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/17

Tartalomjegyzék ● ● ● ● ● Összetett alkalmazások felépítése Grafikus felhasználói felületek - GUI

Tartalomjegyzék ● ● ● ● ● Összetett alkalmazások felépítése Grafikus felhasználói felületek - GUI Objektum orientált felhasználói felület Eseményvezérelt programozás A GUI kialakítása Java-ban Layout Manager - Elrendezés manager AWT segédosztályok Eseménykezelés Interfész - Interface A Java programozási nyelv Soós Sándor 2/17

Összetett alkalmazások felépítése ● Háromrétegű alkalmazások: – – – ● ● A három réteg

Összetett alkalmazások felépítése ● Háromrétegű alkalmazások: – – – ● ● A három réteg teljesen különválasztható, vagy tetszőleges módokon összeolvasztható. Egyik véglet: – ● Adatbázis Alkalmazás Felhasználói felület a három réteg egyben van Másik véglet: – – adatbázis szerver alkalmazás szerver felhasználói felület (a mai órán ezzel foglalkozunk) Logikailag és fizikailag is szétválnak, akár külön gépeken futnak A Java programozási nyelv Soós Sándor 3/17

Felhasználói felület ● Hagyományos, szekvenciális működésű programok – – – ● Kérdés – válasz

Felhasználói felület ● Hagyományos, szekvenciális működésű programok – – – ● Kérdés – válasz – kérdés – válasz – … általában karakteres felületű, de nem ez a lényeg a felhasználó akkor avatkozhat be, ha a program kérdést tesz fel Igazi interaktivitás – – a program működik, végzi a munkáját a felhasználó bármikor beavatkozhat az adatbevitel sem szekvenciális, űrlapokat töltünk ki, az egyes mezőket tetszőleges sorrendben tölthetjük ki, végül egy gombnyomással jelezzük a bevitel végét. Így működnek a mai grafikus felhasználói felületek A Java programozási nyelv Soós Sándor 4/17

Grafikus felhasználói felületek GUI – (Graphical User Interface) ● A felhasználó szempontjából: – –

Grafikus felhasználói felületek GUI – (Graphical User Interface) ● A felhasználó szempontjából: – – – ● Színes, grafikus, jól átlátható felület Ablaktechnika Egérkezelés A programozó szempontjából: – – Objektumorientált programozás Eseményvezérelt programozás A Java programozási nyelv Soós Sándor 5/17

Objektum orientált felhasználói felület ● ● A felhasználói felület minden eleme egy-egy objektum Az

Objektum orientált felhasználói felület ● ● A felhasználói felület minden eleme egy-egy objektum Az objektumok között különböző kapcsolat lehet: – egymástól független objektumok ● – például két adatbeviteli mező egyik objektum tartalmazza a másikat ● ● ● például egy párbeszédablak és a benne lévő beviteli mezők általában egy dinamikus listába fűzzük fel az objektumokat hierarchikus rendben helyezkednek el az objektumok – ablak ● panel ● groupbox ● checkbox A Java programozási nyelv Soós Sándor 6/17

Eseményvezérelt programozás ● Az objektumok egymással és a felhasználóval eseményeken keresztül tartják a kapcsolatot.

Eseményvezérelt programozás ● Az objektumok egymással és a felhasználóval eseményeken keresztül tartják a kapcsolatot. – – Az egyik objektum kivált egy eseményt Létrehoz egy esemény objektumot A futtató rendszer elkapja az eseményt és eljuttatja a célobjektumhoz. A célobjektum lekezeli az eseményt A Java programozási nyelv Soós Sándor 7/17

Példa eseményvezérelt kommunikációra ● A jelenség: – ● Az egérrel rákattintunk egy gombra, ami

Példa eseményvezérelt kommunikációra ● A jelenség: – ● Az egérrel rákattintunk egy gombra, ami átállítja az ablak háttérszínét. Mi történik a háttérben? – – Az operációs rendszer (pl. a Windows) érzékeli az egér kattintást. Az eseményt továbbítja annak a programnak, amelyik ablakában volt az egér a kattintáskor. A program továbbítja annak az objektumnak, amelyik területén történt a kattintás. Példánkban a gomb lekezeli az eseményt, azaz lefut a hozzárendelt metódus, átállítja az ablak háttérszínét. A Java programozási nyelv Soós Sándor 8/17

Mindezek megvalósítása Java-ban ● A grafikus felhasználói felület megvalósítása – java. awt csomag ●

Mindezek megvalósítása Java-ban ● A grafikus felhasználói felület megvalósítása – java. awt csomag ● ● ● – natív kódban megírt grafikus objektumok hordozható kód, de a kinézet platformfüggő egyelőre ezzel fogunk foglalkozni javax. swing csomag ● ● az operációs rendszerből csak az alap grafikus utasításokat használja a grafikus objektumokat Java nyelven valósítja meg hordozható kód az objektumok kinézete platformfüggetlen, sőt szabályozható (javax. swing. Look. And. Feel) A Java programozási nyelv Soós Sándor 9/17

A GUI kialakítása Java-ban ● ● Egy egyszerű példa alkalmazás: Color. GUI. java Lépések:

A GUI kialakítása Java-ban ● ● Egy egyszerű példa alkalmazás: Color. GUI. java Lépések: – – – ● ● Létrehozunk egy Frame-et. Ez lesz a program főablaka. Beállítjuk a használni kívánt Layout managert (set. Layout). Sorban létrehozzuk (példányosítjuk) a szükséges komponenseket, és befűzzük a Frame-be (add). Beállítjuk a Frame méretét (set. Size). Megjelenítjük a Frame-et (show). Ezzel elkészült a felület. Ez egy "működő" program, de még nem csinál semmit. A Java programozási nyelv Soós Sándor 10/17

Layout Manager Elrendezés manager ● Dinamikusan elrendezi a konténer-ben lévő komponenseket. Különböző Layout managerek

Layout Manager Elrendezés manager ● Dinamikusan elrendezi a konténer-ben lévő komponenseket. Különböző Layout managerek eltérő elvek alapján rendezik el a komponenseket: – – – Flow. Layout – A Panel és az Applet default elrendezés menedzsere. Sorfolytonos elhelyezést ad. Border. Layout – északi, déli, keleti, nyugati és középső régió Grid. Layout – megadott számú sor és oszlop jön létre Grid. Bag. Layout – mint a Grid. Layout, de több cella összevonható (ld. numerikus billentyűzet) Card. Layout – egymáson lévő komponensek közül a csak a felső látszik, mint egy kártyapakli, lapozható A Java programozási nyelv Soós Sándor 11/17

AWT segédosztályok ● Point osztály: egy képernyő pozíció – – ● Dimension osztály: szélesség,

AWT segédosztályok ● Point osztály: egy képernyő pozíció – – ● Dimension osztály: szélesség, magasság – – ● adatmezők: int width, height metódusok: double get. Width(), double get. Height() Rectangle osztály: egy téglalap – ● adatmezők: int x, y metódusok: double get. X(), double get. Y() Point + Dimension Polygon osztály: zárt sokszög – a csúcspontok két tömbben vannak A Java programozási nyelv Soós Sándor 12/17

AWT segédosztályok, folyt. Színek ● Color osztály: színek – – ● konstansok a színek

AWT segédosztályok, folyt. Színek ● Color osztály: színek – – ● konstansok a színek angol nevei csupa kisbetűvel Color. black, Color. red, Color. blue, stb. System. Color osztály: az ablakkezelő rendszer színei – Néhány példa: ● ● System. Color. window: ablakok háttérszíne System. Color. menu. Text: a menük szövegének színe System. Color. desktop: a munkaasztal háttérszíne stb. A Java programozási nyelv Soós Sándor 13/17

Eseménykezelés ● ● ● Töltsük meg élettel a felhasználói felületet! Eseményfigyelő objektumokat kapcsolunk azokhoz

Eseménykezelés ● ● ● Töltsük meg élettel a felhasználói felületet! Eseményfigyelő objektumokat kapcsolunk azokhoz a komponensekhez, amelyekkel reagálni akarunk valamely eseményre. Az eseményfigyelő objektumoknak van egy vagy több olyan metódusa, ami meghívásra kerül, amikor kiváltódik az általa figyelt esemény. Ezeket a metódusokat definiálva reagálhatunk az eseményre. A java. awt. event csomag definiálja az AWT által használt eseményfigyelő interfészeket. A Java programozási nyelv Soós Sándor 14/17

Interfész - Interface ● ● ● Az interface a Java nyelv másik alapvető építőköve

Interfész - Interface ● ● ● Az interface a Java nyelv másik alapvető építőköve a class mellett. Az interface tulajdonképpen egy teljesen abstract osztály, csak abstract metódus deklarációk és konstansok szerepelnek benne. Az interface-ek az osztályokhoz hasonlóan öröklési kapcsolatban állhatnak egymással, de – – ● nincsen "közös ős" interface (mint az Object az osztályoknál) van többszörös öröklődés Az interface-eket ugyanúgy lehet példányosítani, mint az osztályokat. Nekünk most csak erre lesz szükségünk. A Java programozási nyelv Soós Sándor 15/17

Az eseményfigyelő objektumok megvalósítása ● ● A java. awt. event csomag interface-ek formájában definiálja

Az eseményfigyelő objektumok megvalósítása ● ● A java. awt. event csomag interface-ek formájában definiálja a különböző eseményfigyelő objektumok mintáit. Ezekből lehet példányosítani a szükséges objektumokat. Példánkban az Action. Listener interface-ből példányosítunk egyet a színezéshez és egyet a Bezárás gomb számára. Ezeket az objektumokat befűzzük a megfelelő nyomógombok eseményfigyelő listájába (add. Action. Listener). 16/17 A Java programozási nyelv Soós Sándor

Példa: Faktoriális számítás ● ● Nézzük meg a Faktor. java programot! Ennek mintájára készítsünk

Példa: Faktoriális számítás ● ● Nézzük meg a Faktor. java programot! Ennek mintájára készítsünk egyszerű számológépet! – – legyen benne két beviteli mező, és néhány nyomógomb a különböző műveletek elvégzésére az eredmény jelenjen meg egy Label-ben. A Java programozási nyelv Soós Sándor 17/17