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

Hasonló dokumentumok
Java Programozás 11. Ea: MVC modell

Java Programozás 1. Gy: Java alapok. Ismétlés ++

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

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

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

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

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

OOP: Java 8.Gy: Gyakorlás

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

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

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

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

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

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

4. Gy: JAVA osztályok

ZH mintapélda. Feladat. Felület

Java és web programozás

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

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

7. K: JAVA alapok Konzultáció

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?

Programozási nyelvek Java

OOP: Java 1.Gy: Java alapok

OOP: Java 4.Gy: Java osztályok

OOP: Java 6.Gy: Java osztályok. Definíció, static, túlterhelés

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;

Programozási technológia

Programozási technológia

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

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

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

OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN

Model View Controller alapú alkalmazásfejlesztés

Osztályok. 4. gyakorlat

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

Java programozási nyelv 6. rész Java a gyakorlatban

BME MOGI Gépészeti informatika 4.

Java felhasználói felület

Objektumorientált programozás C# nyelven III.

CREATE TABLE student ( id int NOT NULL GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name varchar(100) NOT NULL, address varchar(100) NOT NULL )

BME MOGI Gépészeti informatika 7.

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

Segédanyag: Java alkalmazások gyakorlat

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

Java és web programozás

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

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

I. 288.: Utcai WiFi térkép

Algoritmusok és adatszerkezetek II.

JavaServer Pages (JSP) (folytatás)

Objektum Orientált Programozás. 5. JAVA osztályok 21/1B IT MAN

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

BME MOGI Gépészeti informatika 8.

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

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

és az instanceof operátor

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

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

3. Határozza meg és írja ki a minta szerint, hogy a forrásállományban hány kémiai elem felfedezési adatai

Smalltalk 3. Osztályok létrehozása. Készítette: Szabó Éva

Java programozási nyelv 4. rész Osztályok II.

Swing. (A javax.swing csomag)

Concurrency in Swing

Elemi Alkalmazások Fejlesztése II.

Java Programozás 2. Gy: EmpProgram. Grafikus felületű adatkezelő program

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

BME MOGI Gépészeti informatika 6.

Az új be- és kimenet könyvtár

Szoftvertechnológia alapjai Java előadások

Az emelt szintű. informatika érettségi. programozási feladatainak. megoldása Java nyelven. NetBeans IDE 8.1 környezetben

Szoftvertechnolo gia gyakorlat

Programozási nyelvek Java

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

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Programozási nyelvek II.: JAVA

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

Objektumorientált programozás C# nyelven

JAVA PROGRAMOZÁS 3.ELŐADÁS

List<String> l1 = new ArrayList<String>(); List<Object> l2 = l1; // error

Objektumorientált programozás C# nyelven

Szoftvertechnológia alapjai Java előadások

INFORMATIKAI ALAPISMERETEK

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

Java gyakorlat feladatai e s megolda sai ( )

OOP: Java 5.Gy: Osztály, referencia, konstruktor

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

OOP: Java 7.Gy: Öröklődés, referenciák

Informatika terméktervezőknek

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék

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

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

Programozás I. Első ZH segédlet

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

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

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

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

Objektum elvű alkalmazások fejlesztése Kifejezés lengyel formára hozása és kiértékelése

JAVA PROGRAMOZÁS 2.ELŐADÁS

Tervminták a valósidejű gyakorlatban

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

Átírás:

Java Programozás 4. Gy: Java GUI Tipper, MVC kalkulátor 15/1 B ITv: MAN 2018.03.10

1. Feladat: Tipper Készítsük el a tippelős programunk grafikus változatát. Az üzleti logika kódja megvan, a felület pedig így nézzen ki: A Reset gomb indítsa újra a játékot: - új tipp generálása - mezők kiürítése - tippek száma = 0 15/2 Az üzleti logika kódja benne van az 1. gyakorlat anyagában!

2. Feladat: Számológépecske (Hatványozó gép) Csak szorozni tud, mindig az aktuális eredményt szorozza össze egy beírható számmal. Van Reset funkciója 15/3

Magyarázatok Programlogika: 1. Az eredmény szövegmezőnek 1 (egy) az alapértéke 2. Be kell írni a számot, amit szorozni akarunk (kezdetben 1-el) 3. A Szorzás gombot megnyomva a számot összeszorozzuk az Eredménnyel, és kiírjuk az értéket az Eredmény mezőbe 4. A Szorzás gombot megnyomva a Számot ismét megszorozzuk az Eredménnyel (vagyis most önmagával), így a szám négyzetét kapjuk. 5. Újabb szorzással a szám köbét kapjuk 6. A Reset funkció kiüríti a Szám mezőt, és beállítja az Eredményt alapértékre (1-re) Készítse el mindenki a grafikus felületet, és programozza le az üzleti logikát! 15/4

MVC Model-View-Controller A modell-nézet-vezérlő a szoftvertervezésben használatos szerkezeti minta. Az MVC célja elválasztani az üzleti logikát a felhasználói felülettel kapcsolatos elgondolásoktól oly módon, hogy a fejlesztők minél könnyebben változtathassák meg az egyes részeket anélkül, hogy a többire hatással lennének. Az egyes részek feladata: Modell: képviseli az adatot és az üzleti logikát Nézet: a felhasználói felület elemei Vezérlő: biztosítja a nézet és a modell közötti kapcsolatot 15/5

MVC Vezérlő Modell Nézet 15/6

MVC alapú számológépecske 1. A grafikus felület vezérlői értelmezik a felhasználó parancsait 2. A parancsokat továbbítják a kontroller felé 3. A kontroller küldi az adatokat a modell felé, és utasítja azt az adatkezelésre 4. A modell a kiszámított adatokat visszaadja a kontrollernek 5. A kontroller utasítja a grafikus felületet az eredmények frissítésére 15/7

Számológépecske MVC A modell A modellbe kerül a teljes üzleti logika, és a modell fogja tárolni az aktuális számítási eredményt, és az inicializálás/reset értéket: - adattag: inicializálási érték - adattag: aktuális számítási érték - konstruktor - getérték, setérték metódusok - reset metódus - számítást (szorzást) elvégző metódus 15/8

Számológépecske MVC A modell kódja public class CalcModel { private static final int INIT_VALUE = 1; private int value; public CalcModel() { value = INIT_VALUE; public int getvalue(){ return value; public void setvalue(int x) { value = x; public void reset() { value = INIT_VALUE; 15/9 public void operation(int a, int b) { value = a*b;

Számológépecske MVC A vezérlő A vezérlőbe kerülnek a kiolvasás, ellenőrzés, átalakítás, és a kommunikáció (M-V-C) műveletei: - szövegmező tartalom beolvasó metódus - szövegmező tartalom ellenőrző metódus - a modell számító metódusát hívó metódus - a modell számítási eredményét a GUI-ra kiíró metódus - Reset lebonyolító metódus - Üzeneteket megjelenítő metódus - String egésszé konvertálhatóságát ellenőrző metódus - Stringet egésszé konvertáló metódus - Lesz benne egy deklarált Modell példány! 15/10

Számológépecske MVC A vezérlő kódja import javax.swing.*; public class CalcController { private static String clm = "Calc program message"; private CalcModel cm = new CalcModel(); 15/11 public boolean textfieldchecker(jtextfield jtf){ String s = readjtf(jtf); if (s.length() == 0) { showmd("nincs beírva adat!", 0); return false; else if (goodint(s)) return true; else { showmd("a beírt adat nem alakítható egész számmá!", 0); return false; public String readjtf(jtextfield a) { return a.gettext().tostring();

Számológépecske MVC A vezérlő kódja public void calc(jtextfield a, JTextField b) { int av = StoI(readJTF(a)); int bv = StoI(readJTF(b)); cm.operation(av, bv); int x = cm.getvalue(); b.settext(integer.tostring(x)); public void reset(jtextfield a, JTextField b) { cm.reset(); a.settext(""); int x = cm.getvalue(); b.settext(integer.tostring(x)); AController teremt kapcsolatot a View és a Modell között. 15/12

Számológépecske MVC A vezérlő kódja public boolean goodint(string s) { int x; try { x = Integer.parseInt(s); return true; catch (NumberFormatException e) {return false; public int StoI(String s){ return Integer.parseInt(s); public void showmd(string s, int i){ JOptionPane.showMessageDialog(null, s, clm, i); 15/13

Számológépecske MVC A View kódja (részlet) public class CalcMVC extends JFrame { private CalcController cc = new CalcController(); ba.addactionlistener(new ActionListener() { public void actionperformed(actionevent e) { if (cc.textfieldchecker(adat)) cc.calc(adat, eredmeny); ); br.addactionlistener(new ActionListener() { public void actionperformed(actionevent e) { cc.reset(adat, eredmeny); ); A View-ból nem látszik a Modell, minden művelet a Controller-en keresztül történik. 15/14

VÉGE VÉGE 15/15