JAVA PROGRAMOZÁS 4.ELŐADÁS



Hasonló dokumentumok
JAVA PROGRAMOZÁS 5.ELŐADÁS

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

JAVA PROGRAMOZÁS 3.ELŐADÁS

Szoftvertechnológia alapjai Java előadások

JAVA PROGRAMOZÁS 2.ELŐADÁS

Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - II. / 1

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

Java felhasználói felület

Java felhasználói felület

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

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

Swing. (A javax.swing csomag)

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

Java IX. telkezelés a Java-ban

Java IX. telkezelés a Java-ban

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

Java programozási nyelv 9. rész Kivételkezelés

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

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.

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

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

Kivételkezelés, naplózás. Exception handling, logging

Osztályok. construct () destruct() $b=new Book(); $b=null; unset ($b); book.php: <?php class Book { private $isbn; public $title;

S ha kettészelik is: balfelöl belőle Valamivel mindig - Valamivel mindiq több marad. (Nyugat )

Objektumorientált programozás C# nyelven

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?

Java programozási nyelv 7. rész Java osztálykönyvtár 1.

OOP #14 (referencia-elv)

7. K: JAVA alapok Konzultáció

Kivételek kezelése (exception handling) Hibakezelés old style. Kivételkezelés

VI. Grafikus Java alkalmazások

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

Dr. Iszály György Barna

Kivételek. A program végrehajtása során ritkán bekövetkező események Nem a fő végrehajtási ág ; logikailag alacsonyabbrendű feladat jelzése

Programozási nyelvek Java

JAVA PROGRAMOZÁS 8.ELŐADÁS

OOP és UML Áttekintés

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

Programozási technológia

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

Programozási környezetek

Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 1

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

A Java nyelv. Dialógus ablakok. Elek Tibor

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

BME MOGI Gépészeti informatika 14.

Bevezetés a Programozásba II 8. előadás. Polimorfizmus Giachetta Roberto

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

Java osztálykönyvtár és használata

JAVA SE/ME tanfolyam tematika

Pénzügyi algoritmusok

Objektumorientált programozás C# nyelven III.

Globális operátor overloading

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

Objektumorientált programozás C# nyelven

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

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

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

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

Java Programozás 11. Ea: MVC modell

Kivételkezelés a C++ nyelvben Bevezetés

Bevezetés a Java programozási nyelvbe

Programozás II. labor

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

C# osztályok. Krizsán Zoltán

Mi a különbség az extends és az implements között. Mikor melyiket kell használni? Comperable-t megvalósító oasztályokban össze lehet hasonlitani

Bevezetés a Java programozási nyelvbe

Bevezetés a Programozásba II 5. előadás. Objektumorientált programozás és tervezés

VII. Appletek, grafika

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

és az instanceof operátor

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

Interfészek. PPT 2007/2008 tavasz.

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

ArcGIS 8.3 segédlet 5. Dr. Iványi Péter

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

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

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

Programozási nyelvek II.: JAVA

Informatika 1 CSS. Kovács Kristóf, Pálovics Róbert, Wettl Ferenc november 4. Budapesti M szaki Egyetem

Java VII. Polimorfizmus a Java nyelvben

HTML ÉS PHP ŐSZI FÉLÉV

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

Programozási nyelvek II.: JAVA

Programozási technológia

1. Jelölje meg az összes igaz állítást a következők közül!

Már megismert fogalmak áttekintése

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

Java VII. Polimorfizmus a Java nyelvben

Java II. I A Java programozási nyelv alapelemei

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

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

Programozás. C++ osztályok. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék

Java programozási nyelv

Grafikai lehetőségek

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

Informatika 1. Informatika el adás. Kovács Kristóf, Pálovics Róbert. Budapesti M szaki Egyetem november 13.

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

Bevezető. Servlet alapgondolatok

A C# programozási nyelv alapjai

Átírás:

Dr. Pál László, Sapientia EMTE, Csíkszereda JAVA PROGRAMOZÁS 4.ELŐADÁS 2014-2015 tavasz Kivételkezelés, Grafikus felhasználói felület

2 Kivételkezelés

Rendszerhibák és kivételek 3 Programot leállító események: objektumok, melyek osztályai a Throwable osztály leszármazottai A dobható események két csoportja: Rendszerhiba (Error): a programot leállítja Kivétel (Exception): hibakezelés után a program folytatódhat Nem ellenőrzött kivétel: nem kötelező kezelni (futási hibák, RuntimeException és annak leszármazottai) Ellenőrzött kivétel: kötelező kezelni (többi Exception)

4 Rendszerhibák és kivételek osztályhierarchiája

5 Kivételosztályok deklarációi

Nem ellenőrzött ellenőrzött kivételek 6 Nem ellenőrzött kivételek: Futási hibák, vagyis RuntimeException és annak leszármazottai A nem ellenőrzött kivételeket a programozó nem köteles lekezelni Ellenőrzött kivételek: Minden kivétel, kivéve az előző csoportot A programozónak kötelező lekezelnie, különben a fordító hibát jelez

Kivételek keletkezése és kiváltása 7 Ki váltja ki? API metódus Programozó Kivétel kiváltása: kivételobjektum létrehozása és bedobása (throw) a program vérkeringésébe throw new <Kivételosztály>(<információs szöveg>) A kivétel a metódushívási láncon visszafelé kiszáll a programból

8 Kivétel útja - Példa

9 Kivétel útja - Példa

10 Kivétel útja - Példa

11 Vektor túlindexelése - Példa

A kivétel továbbadása throws 12 Ellenőrzött kivételekkel a metódushívási lánc minden metódusában foglalkoznunk kell Két lehetőségünk van: a metódusban kezeljük a kivételt a kivételt továbbadjuk a hívó metódusnak Kivétel továbbadásának jelzése a metódusfejben: throws <Kivételosztály1, Kivételosztály2,... > throws Exception A kivételosztályok továbbadáskor nem szűkíthetők!

A kivétel továbbadása throws 13 Példa:

A kivétel továbbadása throws 14 Példa:

A kivétel elkapása, kezelése 15 try-catch-finally szerkezet try { // try blokk <utasítások> } catch (<Kivételosztály1> <obj1>){ //catch blokk <utasítások> } catch (<KivételosztályN> <objn>){ //catch blokk <utasítások> } finally { //finally blokk <utasítások> }

A kivétel elkapása, kezelése 16 try blokk Kivételek keletkezésének feltételezett helye catch blokk Kivétel kezelése az érkező kivételobjektum alapján Aktuális (érkező) kivételobjektum értékadási kompatibilitás: formális kivételobjektum = aktuális kivételobjektum manipulálható, a blokk végén elpusztul Működése legfeljebb egy catch blokk hajtódik végre sorrend: egyre általánosabb kivételek definiálandók nincs kezelve továbbadódik a hívó metódusnak finally blokk Minden körülmények között végrehajtódik

17 Kivétel elkapásának útja

18 Kivétel elkapásának útja

19 Saját kivételek - Példa

20 Saját kivételek - Példa

21 Grafikus felhasználói felület

AWT és Swing 22 A GUI (Graphical User Interface) programozására Java kétféle osztálygyűjteményt biztosít. Mindkét esetben a cél a platformfüggetlenség: AWT (Abstract Window Toolkit): Felhasználja az adott operációs rendszer saját GUI komponenseit (java.awt csomag) Swing: Az AWT komponensek pehelysúlyú (swing) változatai A komponensek grafikusan vannak kirajzolva Az AWT-re épül (javax.swing csomag)

Komponensek 23 Téglalap alapú képernyőfelületek, meghatározott tulajdonságokkal és viselkedéssel Swing komponensek közös őse a javax.swing.jcomponent Konténer komponensek Vezérlő komponensek

24 Komponensek hierarchiája

Komponensek tulajdonosi viszonya 25 Két típusú lehet: Konténer és komponense: A konténer komponensei fizikailag sosem kerülhetnek a konténeren kívülre Konténer megszűnése maga után vonja az összes komponensének a megszűnését Példa: a keret, dialógusablak, panel konténerek Ablak és ablaka: A gyerek ablakok elhelyezkedése és mérete független a szülő ablaktól Példa: JWindow, JDialog

26 AWT és Swing osztályhierarchia

Swing program - Példa 27 Feladat: Készítsük el az itt látható keretet! A keret bal felső sarka a képernyő (100,50) pozícióján legyen, mérete 300*100, címe: Frame teszt. A kereten legyen egy címke a Döntsd el: szöveggel, továbbá legyen két nyomógomb, OK és Nem OK felirattal! fr lbinfo btok btnemok

28 Swing program - Példa

29 Swing program - Példa

Jellemzők 30 Property: Beállítható és lekérdezhető tulajdonság Deklaráció: PropType propname; beállító metódus (set): void setpropname(proptype propname) lekérdező metódus (get / is): PropType getpropname() boolean ispropname()

Pont, méret, téglalap 31 Osztályok a látható komponensek paraméterezéséhez Point osztály: megjegyzi egy pont x és y koordinátáit Dimension osztály: megjegyzi egy téglalap méretét (szélességét és magasságát) Rectangle osztály: megjegyzi egy téglalap helyzetét (location): bal felső sarkának x és y koordinátáit, és méretét (dimension): szélességét (width) és magasságát (height)

Koordinátarendszer 32 (0,0) x screensize.width=1024 y screensize.height=768 A képernyő bal alsó sarka: (1023,767)

Toolkit osztály 33 Alapvető, környezetfüggő metódust tartalmaz, amelyek a képernyőkezeléshez, nyomtatáshoz szükségesek Metódusok: Static Toolkit get DefaultToolkit() Dimension getscreensize() Int getscreenresolution() Image createimage(string filename) void beep()

34 Toolkit osztály - Példa

Betű, szín 35 Font osztály Adott tulajdonságú fontot (betűfajtát) tárol Tulajdonságok String fontname (név, pl.: Arial, Monospaced) int style (stílus, pl.: PLAIN, BOLD, ITALIC) int size (betűméret pontokban) Példánya változtathatatlan Minden komponensnek van fontja Logikai fontnevek: SansSerif, Serif, Monospaced, Dialog, DialogInput

Betű, szín 36 Color osztály RGB színt tárol Minden szín a 3 alapszín (piros,zöld,kék) keveréke Tulajdonságok int red (piros összetevő, 0..255) int green (zöld összetevő, 0..255) int blue (kék összetevő, 0..255) Példánya változtathatatlan Minden komponensnek van egy háttérszíne és egy előtérszíne (betűszíne) Konstans szín objektumokat definiál: Color.black, Color.blue, Color.white,...

Betű, szín 37 SystemColor osztály Rendszer által használt színeket definiál: SystemColor.info, SystemColor.infoText, SystemColor.desktop,... Példa: lb = new JLabel("Szöveg:"); lb.setfont(new Font( Arial",Font.BOLD,24)); lb.setbackground(systemcolor.control); lb.setforeground(color.red);

38 Betű, szín - Példa

JComponent osztály 39 Absztrakt osztály A képernyőn megjelenő Swing komponensek közös őse Mezők static final float CENTER_ALIGNMENT,... Jellemzők Color background Color foreground boolean opaque Font font Cursor cursor Border border Dimension maximumsize Dimension minimumsize Dimension preferredsize float alignmentx float alignmenty String tooltiptext boolean visible boolean enabled boolean requestfocusenabled

JComponent osztály - Jellemzők 40 Helyzet, méret int getx() int gety() int getwidth() int getheight() Rectangle getbounds() Point getlocation() Point getlocationonscreen() void setbounds(int x, int y, int width, int height) void setlocation(int x, int y) void setsize(int width, int height) boolean contains(int x, int y) boolean contains(point p)

JComponent osztály - Jellemzők 41 Láthatóság, érvényesség boolean isdisplayable() void validate() Fókusz, eseményfogadás boolean hasfocus() void requestfocus() void transferfocus() Szülő, állapot Container getparent() String tostring() void list()

A java.awt.container osztály 42 Konténer-komponensek közös őse Jellemzők: LayoutManager layoutmgr Komponens hozzáadása, kivétele Component add(component comp) Component add(component comp, int index) void remove(component comp) void remove(int index) void removeall()

A java.awt.container osztály 43 Gyerekkomponensek int getcomponentcount() Component[] getcomponents() Component getcomponent(int n) Component getcomponentat(int x, int y) Component getcomponentat(point p) boolean isancestorof(component comp) Elrendezés Dimension getmaximumsize() Dimension getminimumsize() Dimension getpreferredsize()

A java.awt.window osztály 44 Összes AWT és Swing ablak komponens közös őse Utódai: Frame, JFrame, Dialog, JDialog, Jwindow Metódusok: void pack() void show() boolean isshowing() void hide() void setlocationrelativeto(component c) void toback() void tofront() void dispose()

A java.awt.window osztály 45 Metódusok: void addwindowlistener(windowlistener l) void removewindowlistener(windowlistener l) Component getfocusowner() Window getowner() Window[] getownedwindows() Aktív ablak Az operációs rendszerben pontosan egy alkalmazás aktív, egy alkalmazásban pedig pontosan egy ablak aktív.

A JFrame osztály 46 Közvetlen ős: java.awt.frame A Swing egyetlen natív komponense Keret: legfelső szintű ablak, nincs tulajdonosa Van szegélye, ikonja, címe és menüsora Komponenseit a tartalompanelbe (content pane) kell tenni

A JFrame osztály 47 Jellemzők String title Image iconimage MenuBar menubar boolean resizable int state Metódusok Container getcontentpane() setdefaultcloseoperation(int operation) static Frame[] getframes()

48 A JFrame osztály - Példa

Könyvészet 49 Angster Erzsébet, Objektumorientált tervezés és programozás. Java I-II. (Bazele programării orientate pe obiecte), Ed. 4 Kör Bt., Budapesta, 2002. Kathy Sierra, Bert Bates: Agyhullám: Java, Kiskapú, 2011.