ESEMÉNY VEZÉRELT ALKALMAZÁSOK FEJLESZTÉSE I. Bevezetés. Készítette: Gregorics Tibor

Hasonló dokumentumok
Programozás BMEKOKAA146. Dr. Bécsi Tamás 8. előadás

Elemi alkalmazások fejlesztése III.

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

Programozási technológia

Sorosítás (szerializáció) és helyreállítás. 1. Bináris sorosítás és helyreállítás Szükséges névterek Attribútumok. 1.3.

Vizuális és eseményvezérelt programozás , II. félév BMF NIK

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

A Microsoft Visual Studio 2005 fejlesztőkörnyezet

Bánsághi Anna 2015 Bánsághi Anna 1 of 31

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

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

Elemi alkalmazások fejlesztése III.

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

components : IContainer dx : int dy : int tmidőzítő : Timer toolstripseparator1 : ToolStripSeparator tsmikilépés : ToolStripMenuItem

Java felhasználói felület

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer

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

Eseményvezérelt és objektumorientált programozás

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer

Johanyák Zsolt Csaba: Képnézegető program oktatási segédlet

Segítség a megoldáshoz: 1. Készítse el a Window-t az ábrának és az osztálydiagramnak megfelelően.

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

Java felhasználói felület

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

Ugráló gomb oktatási segédlet Ugráló gomb

Vizuális és eseményvezérelt programozás , II. félév BMF NIK

Alkalmazások fejlesztése III. Qt 4 /C++ alapú grafikus alkalmazás Bevezetés I.

Johanyák Zsolt Csaba: Grafikus felület programozása. Copyright 2008 Johanyák Zsolt Csaba

BME MOGI Gépészeti informatika 6.

GráfRajz fejlesztői dokumentáció

Programozási alapismeretek 4.

Mérési adatgyűjtés és adatfeldolgozás 2. előadás

Vizuális programozás gyakorlat

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

Programozás BMEKOKAA146. Dr. Bécsi Tamás 10. Előadás

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

Gyakorlati vizsgatevékenység B

Java Programozás 11. Ea: MVC modell

Tartalomjegyzék. 2.3 A GTK+ telepítése Tennivalók Windows alatt... 21

Eseményvezérelt alkalmazások

Vizuális, eseményvezérelt programozás I.

Eseménykezelés - Lottó játék

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

BME MOGI Gépészeti informatika 13.

Már megismert fogalmak áttekintése

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

Java felhasználói felület

JAVA SE/ME tanfolyam tematika

BME MOGI Gépészeti informatika 8.

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Eseménykezelés. Aszinkron kommunikáció

Kétdimenziós rajzolás WPF-ben

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

A Java EE 5 plattform

Objektumorientált paradigma és programfejlesztés Bevezető

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

BME MOGI Gépészeti informatika 7.

Tartalomjegyzék. Előszó... 10

Osztálytervezés és implementációs ajánlások

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

Osztálytervezés és implementációs ajánlások

Concurrency in Swing

Magyar Nemzeti Bank - Elektronikus Rendszer Hitelesített Adatok Fogadásához ERA. Elektronikus aláírás - felhasználói dokumentáció

Budapest, március. ELTE Informatikai Kar

PROGRAMOZÁS tantárgy. Gregorics Tibor egyetemi docens ELTE Informatikai Kar

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

WCF, Entity Framework, ASP.NET, WPF 1. WCF service-t (adatbázissal Entity Framework) 2. ASP.NET kliens 3. WPF kliens

Operációs rendszerek. Tanmenet

Operációs rendszerek. Tanmenet

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

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

NightHawk AccessControl

Laborgyakorlat: Feladatütemezés grafikus felület és az at parancs használatával

Elemi Alkalmazások Fejlesztése Beadandó Feladat Juhász Ádám

Tervezőeszközök, fejlesztőeszközök használata Qt alapú alkalmazásoknál. Saját vezérlő használata tervezőben (worldclocks)

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

BME MOGI Gépészeti informatika 4.

CÍMLISTA HASZNÁLATA. Címlista alapok

A dokumentáció felépítése

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

GenerikusOsztály<objektumtípus> objektum = new GenerikusOsztály<objektumtípus>();

CAN alapú járműves adatokat megjelenítő szoftver fejlesztése

Inczédy György Középiskola, Szakiskola és Kollégium Nyíregyháza, Árok u. 53. TANMENET. Informatika szakmacsoport

2. Beadandó feladat dokumentáció

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Windows. Készítette: Csatlós István

OOP és UML Áttekintés

Unit Teszt. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Unit Teszt / 22

Programozási Paradigmák és Technikák

LabVIEW példák és bemutatók KÉSZÍTETTE: DR. FÜVESI VIKTOR

XML Webszolgáltatás alapú osztott alkalmazás fejlesztése Johanyák Zsolt Csaba 1

// keressük meg a legnagyobb faktoriális értéket, ami kisebb, // mint százmillió

Programozási nyelvek II. JAVA EA+GY 1. gyakolat

I. Objektumorientált programozás

Entity Framework alapú adatbáziselérés 2

JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

ZH mintapélda. Feladat. Felület

Átírás:

ESEMÉNY VEZÉRELT ALKALMAZÁSOK FEJLESZTÉSE I. Bevezetés Készítette: Gregorics Tibor

Előfeltétel: OAF (EAF2) Kötelező házi feladatok: 4 darab feladat max. 5-5 pontért Feltételek 2 hét késés: legfeljebb 3 pont, 4 hét késés 1 pont mindet a szorgalmi időszakban legalább 1 pontosra Géptermi zárthelyi: 2 darab 0-5-ig értékelt mindkettő legalább 2-es,1 javító zh Gyakorlati jegy: géptermi zárthelyik duplán és házi feladatok átlaga http://people.inf.elte.hu /gt/eva1

Cél Eseményvezérelt grafikus felületű alkalmazások készítése Windows/.NET Visual Studio / C# Linux/ Qt (C++) Több rétegű, komponens alapú alkalmazás fejlesztés

4 Eseményvezérelt alkalmazás A felhasználó párbeszéd üzemmódban kommunikál a programmal. A rendelkezésére álló perifériákkal (billentyűzet, egér, érintő képernyő stb.) avatkozik be a program futásába A program várakozik a felhasználó jelzéseire, és azokra reagál. Nemcsak a felhasználó válthat ki eseményt.

kezelő objektum tevékenység esemény-kapcsolat a forrás objektum és a kezelő objektum között akció forrás objektum kiváltó/okozó

Jellegzetes alakú és funkciójú objektumok, amelyeken meghatározott események válthatók ki. A gyakran előforduló komponensek előre definiáltak (újrafelhasználható kód), használatuk konvencionális. ablak (űrlap, form, keret) nyomógomb, jelölő négyzet, rádiógomb, címke, szövegdoboz, listadoboz, kombináltdoboz, szám beállító, folyamat jelző, űrlap (form, ablak, keret), szabványos dialógus ablak (üzenet ablak, megerősítés, fájl betöltés, fájl mentés, szín kiválasztás, stb.), kartonozó, panel. csúszka, görgető sáv, térköz menü (menübár, almenü, helyzet-érzékeny felnyíló menü) időzítő Grafikus felület vezérlői 7

Egy EVA felülete 9

10 Form Egy űrlap osztálydiagramja SajátŰrlap 2 TextBox GroupBox Button 2 RadioButton 2 ListBox

Űrlap osztálydefiníciója 11 public class SajátŰrlap : public Form { Button nyomógomb; TextBox doboz1, doboz2; GroupBox csoport; RadioButton rádiógomb1, rádiógomb2; ListBox lista; public void SajátŰrlap(void) { nyomógomb = new Button(); doboz1 = new TextBox(); csoport = new GroupBox(); rádiógomb1 = new RadioButton();... this.add(nyomógomb); this.add(doboz1); this.add(csoport); csoport.add(rádiógomb1);... vezérlők deklarálása vezérlők létrehozása vezérlők felvétele az űrlap felületére

Űrlap osztálydefiníciója... CONNECT(nyomógomb.Click, this.call); nyomógomb.click += new EventHandler(this.call); connect(nyomógomb,signal(clicked()),this,slot(call())); nyomógomb.addactionlistener(this); esemény-tevékenység kapcsolat eseménykezelő függvény void call(){ doboz1.text = "megnyomtak"; void call(object sender, EventArgs e) void call() public void actionperformed(actioneventargs e) 12

Űrlapot megjelenítő alkalmazás kódja public class SajátŰrlap : public Form { Button nyomógomb;... public void SajátŰrlap(void) { nyomógomb = new Button();... this.add(nyomógomb); CONNECT(nyomógomb.Click, this.call); Generálható kód void call(){ doboz1.text = "megnyomtak"; public class Main { static void Main() { run( new SajátŰrlap() ) 14

15 Felület-tervező (Designer) Vizuális felület-tervező (szerkesztő, designer) funkciói: vezérlő elemek "drag&drop" elrendezése egy form-on vezérlők kezdeti tulajdonságainak beállítása eseményekhez esemény-kezelők rendelése A tervezés eredménye egy magas szintű programozási nyelvű kód, amely beépül az alkalmazásunkba. Kérdések: mit kódoljunk a tervezővel, és mit közvetlenül? módosíthatunk-e a tervező által generált kódon?

16 Generált kód beépülésének technikája Button nyomógomb;... private void Init(void) { nyomógomb = new Button();... this.add(nyomógomb); CONNECT(nyomógomb.Click, this.call); public class SajátŰrlap : public Form {? public void SajátŰrlap(void) { Init(); void call(){ doboz1.text = "megnyomtak"; public class Main { static void Main() { run( new SajátŰrlap() ); Generált kód

Qt Designer form.ui uic UI_Form SetupUI() MyForm MyForm() XML ui_form.h myform.h myform.cpp.net Visual Studio MyForm NetBeans InitializeComponent() MyForm() MyForm InitComponents() MyForm() MyForm.java public static void main() main.cpp myform.designer.cs myform.cs program.cs 17

Űrlap-objektumok osztályai felületi logika Szolgáltatásokat nyújtó, önálló megjelenést nem biztosító osztályok 18 Két rétegű szoftver architektúra Felületi réteg Logikai réteg

19 Egymástól független eseménykezelések (primitív eset) Egymástól függő eseménykezelés (állapotdiagram) Korábbi események eredményeként előálló állapottól függ egy újabb esemény kezelése az aktuális állapotot jelezheti a forrás objektumok együttes tulajdonsága vagy egy speciális állapotjelző objektum Megvalósítás Felhasználói felület működési logikája az egyes eseménykezelők lekérdezik az aktuális állapotot egy központi eseménykezelő metódusban (control()) implementáljuk az állapot-átmeneteket (többágú elágazás)

Felületi réteg Tervezés Megjelenési terv Vezérlők specifikálása: funkciójuk leírása, fajtájuk kiválasztása, tulajdonságaik felsorolása Vezérlők típusának hierarchiája (osztálydiagramja) adott, nem kell explicit módon megadni Állapotdiagram: állapotok és állapot-átmenetek (esemény-tevékenység párok) definiálása Logikai réteg A EVA esemény-kezelését kiszolgáló részfeladatok feltárása (használati esetek) Osztályokba szervezett (objektumokhoz rendelt) tevékenységeket, számításokat végző eljárások, amelyeket a felületi réteg eseménykezelői hívnak meg. 20