Programozási technológia I. programból! A Gomb4 megoldásból induljunk ki!

Hasonló dokumentumok
Grafikus felhasználói felületek, eseménykezelés

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

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

Programozási technológia

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

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

QGIS tanfolyam (ver.2.0)

2. Beadandó feladat dokumentáció

Windows mappaműveletek

ContractTray program Leírás

Java grafikai lehetőségek

OEP Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1. Feladat. Elemzés 1

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

3. Osztályok II. Programozás II

2. Beadandó feladat dokumentáció

A Paint program használata

CAD-ART Kft Budapest, Fehérvári út 35.

DebitTray program Leírás

Táblázatok. Táblázatok beszúrása. Cellák kijelölése

VII. Appletek, grafika

HVK Adminisztrátori használati útmutató

ClicXoft programtálca Leírás

Diagram formázása. A diagram címének, a tengelyek feliratainak, jelmagyarázatának, adatfeliratainak formázása

ServiceTray program Leírás

Ismerkedés az új felülettel

Adatintegritás ellenőrzés Felhasználói dokumentáció verzió 2.0 Budapest, 2008.

A számítógép beállításainak megváltoztatása

QGIS szerkesztések ( verzió) Összeállította: dr. Siki Zoltán verzióra aktualizálta: Jáky András

A LOGO MOTION TANÍTÁSA

A Vonallánc készlet parancsai lehetővé teszik vonalláncok és sokszögek rajzolását.

Szöveges műveletek. Mielőtt nekikezdenénk első szövegünk bevitelének, tanuljunk meg néhány alapvető műveletet a 2003-as verzió segítségével:

ö ö ö ö ö ő ú ü ő ö ü ő ú ő ő ő ö ő ö ü ű ö ü ő ú ő ő ő ű ű ö ő ő ü

Dokumentum létrehozása/módosítása a portálon:

6. Alkalom. Kép ClipArt WordArt Szimbólum Körlevél. K é p

A Java nyelv. Dialógus ablakok. Elek Tibor

Készítsen négy oldalas prezentációt az E CD bolt számára! Tervezze meg az emblémáját!

Felhasználói kézikönyv - Android kliens

Kézikönyv Likviditás tervezés-naptári ciklus

Már megismert fogalmak áttekintése

5.osztály 1.foglalkozás. 5.osztály 2.foglalkozás. hatszögéskörök

Az importálás folyamata Felhasználói dokumentáció verzió 2.1.

Szoftvertechnológia alapjai Java előadások

Gyakorló 9. feladat megoldási útmutató

BME MOGI Gépészeti informatika 18. Grafika, fájlkezelés gyakorló óra. 1. feladat Készítsen alkalmazást az = +

WordPress segédlet. Bevezető. Letöltés. Telepítés

Objektumok és osztályok. Az objektumorientált programozás alapjai. Rajzolás tollal, festés ecsettel. A koordinátarendszer

Táblázatok kezelése. 1. ábra Táblázat kezelése menüből

Képek és grafikák. A Beszúrás/Kép parancsot választva beszúrhatunk képet ClipArt gyűjteményből, vagy fájlból. 1. ábra Kép beszúrása

Grafikus felhasználói felület (GUI) létrehozása A GUI jelentése Egy egyszerű GUI mintaalkalmazás létrehozása

18. Szövegszerkesztők

Programozási alapismeretek 4.

Microsoft Office PowerPoint 2007 fájlműveletei

Á Á Ö Ö Ü É Ö É É Á Ú É É É É Á Á Ö Ö Ő

é ó é ü ö é é ó é Ö é ó é é ú ó é é é é é é é é é Ö é Ő é é ö é Ö ü é ó Ö Ü ö ö é é é Ő ö é é Ü é ö é é é é é é é ü é é ö é é é é é ü é é ü é é é ö ö

S Z E K S Z Á R D T É R I N F O R M A T I K A I R E N D S Z E R

Felhasználói Kézikönyv

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Képek és grafikák használata

Access alapok. Megnevezés Művelet Minta. Új adatbázis létrehozása. Új / Üres adatbázis.. Tábla létrehozása tervező nézetben.

Tartalom Képernyő részei... 2

Imagine Logo Tanmenet évfolyam

BME MOGI Gépészeti informatika 15.

Mechatronika segédlet 1. gyakorlat

Johanyák Zsolt Csaba: Ugráló gomb oktatási segédlet Copyright 2008 Johanyák Zsolt Csaba

Bevezetés a QGIS program használatába Összeálította dr. Siki Zoltán

Java Programozás 11. Ea: MVC modell

QGIS Gyakorló. 1. kép. A vektor réteg (grassland.shp).

Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.

A szerzõrõl... xi Bevezetés... xiii

Felhasználói kézikönyv. az MFB Zrt. közvetítői oktatási rendszeréhez

C#---Access adatbáziskezelési gyakorlat

Építésügyi Monitoring Rendszer (ÉMO) komplex működését biztosító településrendezési tervek digitalizálása EKOP /B kiemelt projekt megvalósítása

1.1.1 Dátum és idő függvények

Word VI. Lábjegyzet. Ebben a részben megadhatjuk, hogy hol szerepeljen a lábjegyzet (oldal alján, szöveg alatt).

VARIO Face 2.0 Felhasználói kézikönyv

Felhasználói segédlet a Scopus adatbázis használatához

Win-Tax évi ös verzió

Országos Területrendezési Terv térképi mel ékleteinek WMS szolgáltatással történő elérése, Quantum GIS program alkalmazásával Útmutató 2010.

A d m i n i s z t r á c i ó s f e l a d a t o k a I n t e g r á l t K ö n y v t á r i R e n d s z e r b e n

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.

Használati utasítás a Betafence.lib GDL könyvtár használatához

1.A. feladat: Programablakok

Diagram készítése. Diagramok formázása

Weboldal grafika készítés elméleti síkon Grafikából szabáványos CSS és XHTML sablon

Bóra Adatcsere. A webes modul működésének részletesebb leírását a csatolt dokumentum tartalmazza.

1. Tesztlap: Programablakok

Csődfigyelő. Figyelje Ön is gazdasági partnerit!

Operációs rendszerek. Tanmenet

A Windows az összetartozó adatokat (fájlokat) mappákban (könyvtárakban) tárolja. A mappák egymásba ágyazottak.

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

MKOSZ Online Support - Felhasználói

Szilipet programok telepítése Hálózatos (kliens/szerver) telepítés Windows 7 operációs rendszer alatt

Felhasználói segédlet a Scopus adatbázis használatához

Bevezetés a programozásba II 1. gyakorlat. A grafikus könyvtár használata, alakzatok rajzolása

Diagramok/grafikonok használata a 2003-as verzióban

Az operációs rendszer fogalma

Kormányzati Elektronikus Aláíró és Aláírás-ellenőrző Szoftver

Matematikai, informatikai, fizikai kompetenciák fejlesztése

Cikk előkalkuláció - Művelet - Egyéb fix és változó költségek

Átírás:

Menü Menü Egészítsük ki a kattintás számláló programot egy menüvel, amelyben nullázhatjuk a számláló értékét, illetve kiléphetünk a programból! A Gomb4 megoldásból induljunk ki!

Menü Menüsor felépítése ÂÅ ÒÙ Ö ÂÅ ÒÙ Ë Ô Ö ØÓÖ µ ÂÅ ÒÙÁØ Ñ ÐÚ Ð ÞØ

Menü Menüsor komponensek műveletei JMenu: konstruktor: paraméter a név setmnemonic: paraméter a kiválasztó billentyű JMenuItem: konstruktor: paraméter AbstractAction-ből származtatott objektum (vagy név, ikon; de ekkor eseménykezelőt hozzá kell venni) setmnemonic: paraméter a menün belüli kiválasztó billenytű setaccelerator: a gyorsítóbillentyű kódja Java program: Menu1 projekt.

Menü Módosítás Változtassuk meg a programot, hogy nullázni csak akkor lehessen, ha a kattintások száma nem nulla! Ehhez az AbstractAction osztály setenabled műveletét használhatjuk. Paramétere egy logikai érték, ami a parancs végrehajthatóságát vezérli. Engedélyezés: Kezdetben hamis (Gomb konstruktor). Kattintás esetén engedélyezni kell (kattintásakció eseménykezelője). Nullázáskor le kell tiltani (nullázás eseménykezelője). Java program: Menu2 projekt.

Ellipszisek rajzolása Készítsünk egy programot, amelyik ellipsziseket (tojásokat) jelenít meg! Növelni, illetve csökkenteni lehet a legnagyobb tojás méretét egy beálĺıtható értékkel. A többi tojás szélessége harmincasával csökken, amíg pozitív a méret. A legnagyobb tojást kell középen felülre elhelyezni, a többi tojást nagyság szerint csökkenően lefelé úgy, hogy illeszkedjenek! Egy tojás magassága a szélességének kétharmada.

Megvalósítás Az új mérték megadásához a már megismert JOptionPane.showInputDialog műveletet használjuk. A rajzolást JPanel segítségével valósítjuk meg. Ebből származtatunk egy osztályt, amelynek paintcomponent művelete adja meg a megjelenítést. A paintcomponent művelet minden esetben végrehajtódik, amikor a komponens területét újra kell rajzolni (átméretezés,... ). A végrehajtás kezdeményezhető a repaint művelettel. A paintcomponent paramétere a grafikus eszközkapcsolat (Graphics), amire rajzolni lehet. Rajzolási lehetőségek Graphics objektumra: program, help. Java program: Tojások1 projekt.

Fejlettebb grafika, eszköztár A kirajzolt ellipszisek nem túlságosan szépek (például hézag van a vonal és a kitöltés között). Jobb eredményhez jutunk, ha a később bevezetett Graphics2D eszközkapcsolatot használjuk. Bővebb funkcionalitás és a műveletek eredménye szebb. A másik változtatás az eszköztár bevezetése lesz. Két gombot helyezünk el az eszköztáron a méret növelés, illetve csökkentés céljára.

Graphics2D A Graphics2D kapcsolatot egyszerű átminősítéssel kaphatjuk meg az eredeti Graphics objektumból. Ezen értelemszerűen értelmezettek a korábbi műveletek. Az alakzatok rajzolásához, illetve fejlettebb műveletekhez a java.awt.geom csomag elemeire van szükség.

Eszköztár A JToolBar osztály szolgál az eszközsorok megvalósítására. Ehhez az add művelettel vehetünk fel akciókat, a visszaadott érték a létrejött gomb. A menüben és az eszköztáron ugyanazt az akciót kellene elhelyeznünk. Ha az akció objektum rendelkezik névvel és ikonnal, akkor az eszköztáron az ikon, a menüben az ikon és a név jelenik meg. Ha az ikon zavaró a menüben, akkor 1. a létrehozott menüpontban az ikont null értékre álĺıthatjuk, vagy 2. az akciót név és ikon nélkül hozzuk létre, és menüpont esetén a szöveget, eszköztár gomb esetén az ikont álĺıtjuk be. Java program: Tojások2 projekt (a programban a második megoldást választottuk tekintettel a későbbiekre).

Státuszsor Az alkalmazások jelentős részében az ablak alsó része a program állapotával kapcsolatos információkat tartalmaz. Ezt nevezzük státuszsornak. Az eddigi rajzoló programot kiegészítjük egy egyszerű státuszsorral. Feltesszük, hogy ebben csak szöveges információk jelenhetnek meg. A sor egyes mezőinek szélessége álĺıtható, az első dinamikusan változhat az ablakkal együtt. Elkészítünk a fentieknek megfelelő általános osztályt a státuszsor megvalósítására (StatusBar). Ezután ennek csak egy példányát kell a keret alsó részére elhelyeznünk, és azt megfelelően konfigurálni. Esetünkben két mező szerepel benne: a legnagyobb tojás aktuális mérete, és a változtatás aktuális mértéke.

StatusBar osztály Az osztályt a JPanel osztályból származtathatjuk. Mezői a JLabel osztály példányai. A mezőket GridBagLayout elrendezésben jelenítjük meg, ahol az első elem szélessége változhat. A mezőket megfelelő kerettel kell ellátni. (Lásd: Tojások3 projekt.)

A státuszsorban megjelenítendő információ miatt a RajzPanel osztályt egy új művelettel kell bővítenünk (maxméret), ami megadja a legnagyobb tojás méretét. A keret (Tojások) osztályban: fel kell vennünk a státuszsort új adattagként, az eseményekhez rendelt akciók eljárásait ki kell bővíteni a státuszsor módosításával, a konstruktorban létre kell hoznunk és megfelelően be kell álĺıtanunk a státuszsort, amit az adatterület aljára kell helyeznünk. Java program: Tojások3 projekt

Görgetés A tojások nem férnek el a látható ablakban. A megoldás a rajzterület görgethetővé tétele. A görgetés érdekében a rajzterületet egy JScrollPane objektumba kell ágyazni, és azt venni a kerethez. Ennek megfelelően a Tojások osztály konstruktora módosul. A RajzPanel osztály méretváltás műveletét módosítani kell. Az újrarajzolás mellett tudatni kell a környezettel, hogy a szükséges rajzterület mérete megváltozott. Ennek alapján jelennek meg a görgetősávok. Erre szolgál az updateui művelet.

Görgetés (folyt.) A megfelelő görgetéshez a rajzterület alapértelmezett méretét is meg kell adni a setpreferredsize művelettel. (Konstruktor, méret váltás.) A magasság kiszámításához bevezetünk egy függvényt. Java program: Tojások4 projekt.

Rajzolási paraméterek A menüben és az eszköztáron elhelyezhetünk választható elemeket (rádiógombok) és kétállapotú elemeket (checkbox). Ezek használatát szemléltetjük a tojások rajzolási paramétereinek megadásával. Lehessen szabályozni, hogy a tojások kitöltöttek legyenek-e. A kitöltési szín is legyen választható előre megadott lehetőségek (szürke, fehér, zöld) közül.

RajzPanel osztály Az osztályt ki kell egészíteni egy kitöltési színt megadó attribútummal (töltés). Ennek értéke legyen null, ha nincs kitöltés, a kitöltési szín, különben. Be kell vezetni egy új műveletet, amellyel a kitöltési szín álĺıtható (tölt). Egy tojás rajzolásakor (rajzol) meg kell vizsgálni, hogy kell-e kitöltés, és ha igen a megfelelő színnel kell kitölteni az alakzatot.

Tojások osztály Kitöltöttség: Szükségünk lesz a kitöltöttség logikai értékre Fel kell venni az eseménykezelő akciót: kitöltés. Kell egy új menüpont (Attribútumok), amelybe be kell tenni a megfelelő menüpontot. Az eszköztárhoz is fel kell venni az új elemet. Az eseménykezelőben kell gondoskodni arról, hogy a menü és az eszköztár elemek szinkronban legyenek.

Tojások osztály (folyt.) Színek: Vegyünk fel két tömböt a színeknek és neveiknek. (Ezekből vesszük az adatokat.) Kell egy érték, amiben tárolhatjuk az utoljára kiválasztott szín indexét. Két tömbben tároljuk a menüpontokat, illetve az eszköztár gombokat. Egy eseménykezelőt írunk az összes esethez. Ebben biztosítjuk a szín álĺıtását, a menü és eszköztár szinkronizációját. A konstruktorban hozzuk létre a felületi elemeket, amelyeket ButtonGroup objektumba kell ágyaznunk. (Ez biztosítja a csoport egyesített kezelését, azaz, ha az egyik változik, akkor a másik is.) Az elemeket a menübe, illetve az eszköztárba is elhelyezzük.

Tojások osztály (folyt.) Színek (folyt.): Az eszköztár gombjai esetén egy-egy függvénnyel adjuk meg az ikont, illetve a kiválasztottsági ikont. (Nem lehet fájlból betölteni a konzisztencia miatt.) Java program: Tojások5 projekt

A menü és az eszköztár elemeinek összevont kezelése Az előző megoldásnak két szépséghibája van: 1. A színek kezelésekor külön szerepelnek a színek és a neveik, ami inkonzisztenciát eredményezhet. 2. Nehézkes a menüben és az eszköztáron szereplő kétállapotú (checkbox, rádiógomb) elemek kezelése. Mindkét problémát egy-egy osztály bevezetésével oldjuk meg.

Szín osztály Az osztály attribútumaiban tároljuk a színt és a nevét. (Lényegében egy rekord.) A konstruktorral lehet létrehozni egy ilyen párt. Egy-egy művelettel lehet lekérdezni az attribútumok értékét. Felüldefiniáljuk a tostring műveletet, amelyben a nevet adjuk meg.

MenuToolToggleItem osztály Az attribútumok adják meg a menüpontot, az eszköztár elemet (ezek értéke null, ha nincs ilyen), illetve az eseménykezelést meghatározó akciót. ØÖ Ø ÙØØÓÒ ÂÅ ÒÙÁØ Ñ ÂÌÓ Ð ÙØØÓÒ Â Óܹ Å ÒÙÁØ Ñ ÂÊ Ó ÙØØÓÒ¹ Å ÒÙÁØ Ñ Â ÓÜ ÂÊ Ó ÙØØÓÒ

A konstruktor paramétere az akció, a menüpontot és az eszköztár elemet üresre álĺıtjuk. Az elemeket a setmenuitem, illetve a settoolitem műveletekkel rendelhetjük az objektumhoz. Az osztály a ActionListener interfész által megadott actionperformed műveletben biztosítja a menü és eszköztár azonos állapotát, és meghívja a beálĺıtott akció eseménykezelőjét. A setselected művelettel lehet álĺıtani az elem(ek) kiválasztottságát. Az isseleceted függvénnyel lehet lekérdezni a kiválasztottságot. Az issource függvénnyel lekérdezhetjük, hogy az elem-e az esemény forrása, azaz a menüpont vagy az eszköztár elem-e az. Programozási technológia I. MenuToolToggleItem osztály (folyt.)

Tojások osztály A keret ezek felhasználásával egyszerűsödik. Egyetlen tömbbe kerülnek a színek. A kitöltöttség és kitöltési szín vezérlésére MenuToolToggleItem típusú objektumot, illetve ilyen objektumok tömbjét használjuk. Az eseménykezelőkben csak a funkciókra kell figyelnünk, a konzisztencia fenntartására nem. A menü, illetve az eszköztár létrehozásakor kell a menüpontokat, illetve az eszköztár gombokat az objektumokhoz hozzárendelni. Java program: Tojások6 projekt

Ez a megoldás abból a szempontból is jó, hogy új kitöltési szín bevezetéséhez csak a kitöltési színek tömböt kell egy új Szín objektummal bővítenünk. Ez azért lehetséges, mert a felületi elemeket a tömb alapján hoztuk létre, az eseménykezelés, pedig egységes minden elemre nézve (ciklus).

Felhasználói felület kialakítása Felhasználói felület kialakítása Az eddigiekből is látszik, hogy menü és eszköztár esetén hasonló módon kell eljárnunk: Meg kell adnunk az elem kinézetét, jellemzőit (szöveg, ikon, mnemonik, gyorsítóbillentyű, elhelyezkedés). Meg kell határoznunk az elemhez tartozó viselkedést, azaz az eseménykezelést (AbstractAction, illetve Action). Egy elem kinézete, elhelyezkedése változhat (például nyelvet váltunk, vagy valamilyen oknál fogva ikont cserélünk, esetleg másik menübe helyezzük át) anélkül, hogy a viselkedése módosulna. Ezért jó lenne a kettőt szétválasztani egymástól.

Felhasználói felület kialakítása A tervezőben valami hasonló történik, de ennél is tovább lehetne menni. A kinézet változása miatt ne kelljen újra fordítani a programot. Ez elérhető, ha a kinézetet egy külön fájlban írjuk le. A fájlban leírt elemekhez a fájl feldolgozása során rendeljük hozzá az eseménykezelőket. Erre később térünk vissza.