Szoftvertechnológia alapjai Java előadások

Hasonló dokumentumok
Vé V g é r g e r h e a h j a tá t s á i s s z s ál á ak a Runnable, Thread

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.

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

Swing. (A javax.swing csomag)

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

Programozási nyelvek és módszerek Java Thread-ek

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ÁS 5.ELŐADÁS

Java felhasználói felület

Programozási nyelvek Java

Java Programozás 11. Ea: MVC modell

Concurrency in Swing

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

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

Programozási technológia

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

Java felhasználói felület

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

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

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

Szoftvertechnológia alapjai Java előadások

JAVA SE/ME tanfolyam tematika

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

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

Magas szintű programozási nyelvek 2 Előadás jegyzet

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

Segédanyag: Java alkalmazások gyakorlat

Végrehajtási szálak - kiegészítések. Szinkronizálás, érvénytelenített metódusok helyettesítése

Java és web programozás

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

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

JAVA PROGRAMOZÁS 4.ELŐADÁS

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

Java IX. telkezelés a Java-ban

Java IX. telkezelés a Java-ban

Se S r e ial a iza z t a ion o n (in n Ja J v a a v ) a Szerializáció

- Alkalmazásfejlesztési szemlélet megismerése - Java GUI készítés bemutatása Swing-ben - Órai feladat megoldása

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

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

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

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

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

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

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.

Java programozási nyelv

Java és web programozás

Segédanyag: Java alkalmazások gyakorlat

7. K: JAVA alapok Konzultáció

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

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

Osztályok. 4. gyakorlat

és az instanceof operátor

Globális operátor overloading

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

Objektumorientált programozás C# nyelven III.

Java Programozás 8. Ea: GUI. Graphical User Interface

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

VI. Grafikus Java alkalmazások

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

Java és web programozás

Java és web programozás

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

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

C# Szálkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Szálkezelés / 21

I. Szakmai törzsanyag

Objektumorientált programozás C# nyelven III.

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

Programozási technológia 2.

Broadcast Service Widget

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

Programozási nyelvek II.: JAVA

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

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

Segédanyag: Java alkalmazások gyakorlat

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

Java és web programozás

Programozási nyelvek Java

Példaprogram - 2. Objektum-orientált programozás Java és C++ nyelven. Példaprogram. Azonosítók. Dr. Rohonczy János. Azonosítók

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

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

Task-alapú párhuzamosítás C# környezetben

Pa rhuzamossa g. Java tutorial. Alkalmazasi teruletek. Cel. Pa rhuzamossa gi modellek. Ha egy processzor van...

Programozási technológia

Informatika terméktervezőknek

Objektumorientált programozás C# nyelven

Párhuzamosság. Java a párhuzamosítást több féle képpen támogatja.

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

Osztályszintű elérés, kivételkezelés, fájlkezelés

OOP és UML Áttekintés

Objektumorientált programozás C# nyelven

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

Szálkezelés Rajzolás képernyőre Bevitel kezelése - Érintő képernyő - Billentyűzet

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

VIII. Szálak és animáció

Szálkezelés. Melyik az a hívás, amelynek megtörténtekor már biztosak lehetünk a deadlock kialakulásában?

Bánsághi Anna

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

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

PHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II / 19

Átírás:

Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz e-mail: fandrew@mit.bme.hu tárgy honlap: http://home.mit.bme.hu/~fandrew/szofttech_hu.html 1

Kivételkezelés I. szokatlan, váratlan esemény - hibakezelés cél: robosztus program, hiba esetén ne álljon le hagyományos hibakezelés: nehézkes, komplex kód pl. C programban függvények visszatérési értéke visszaterjesztés a hívónak több szinten keresztül nehezen karbantartható 2

Kivételkezelés II. alapelv: funkcionális részeket és a hibakezelést különválasztani! try-catch-finally blokk kivétel eldobása: throw new MyOwnException() amiket tovább akarunk dobni: throws Throwable class: Exception és Error class RuntimeException és Error kitüntetett 3

Kivételkezelés példa class MyException extends Exception { MyException(String s) { super(s); static int readdata() throws MyException, java.io.ioexception { public static void main(string[] args) { try { int d = readdata(); catch (MyException me) { System.err.println( MyException hiba: + me); catch (java.io.ioexception ioe) { System.err.println( IOException hiba: + ioe); 4

GUI: AWT és Swing AWT (java.awt) Abstract Window Toolkit Swing (javax.swing) AWT v2 komponensek és konténerek (folyamat-, adat-,) eseményvezérelt programozás eseménykezelés: esemény objektum: pl. MouseEvent esemény forrás objektum listener (hallgató) interfész: pl. MouseMotionListener adapter osztályok: pl. MouseMotionAdapter regisztrálás: pl. Component.addMouseMotionListener() 5

GUI: konténerek, komponensek ablakok: önálló ablak: JFrame, JDialog keret és önálló layout: JPanel bármi rajzolása: Canvas (AWT) egyszerű komponens: JLabel: szöveg JButton, JCheckbox, JRadioButton: gombok JComboBox, JList: többféle választás JMenuBar, JMenu, JMenuItem: menü komplex feladatok: JTable: (akár szerkeszthető) táblázat JFileChooser: file open / save / dialog 6

LayoutManager http://java.sun.com/docs/books/tutorial/uiswing/layout/visual.html komponens méret megadása: setmaximumsize(), Preferred, Minimum meghatározza komponens helyét, méretét BorderLayout: North, E, W, S, Center BoxLayout: egy sorba vagy oszlopba FlowLayout: mint folyó szöveg GridLayout: négyzetrács (táblázat) GridBagLayout: táblázat, de flexibilis 7

GUI: rajzolás saját grafika: célszerűen Canvas, JPanel vagy JLabel paintcomponent() felülírása, repaint() meghívása! rajzolás (alakzat, kitöltés, ) Graphics2D 8

GUI: rajzolás példa class DominoPanel extends JPanel { // dominók állapota public adddomino(domino d) { // állapot változtatása repaint(); protected void paintcomponent(graphics g) { Graphics2D g2 = (Graphics2D)g; g2.setcolor(color.red); g2.drawline(10, 10, 50, 50); 9

Párhuzamos programozás folyamat (process) és szál (thread) miért kellenek szálak? válaszadási képesség hosszú művelet (számolás, adatbázis) közben futó folyamatok leállíthatók legyenek háttérben futtatott feladat (pl. monitorozás, hálózati kommunikáció) Swing megköveteli beépített szál-kezelési képesség nyelvi szinten prioritások (Thread.MIN_PRIORITY Thread.MIN_PRIORITY) példa: garbage collector (low priority, idle time) 10

Szálak szál implementálása: java.lang.runnable interface java.lang.thread osztály mindkettőnél: public void run() szál indítása: Thread.start(), nincs stop()! join(): megvárja a szál befejeződését yield(): ütemezés futás jogáról lemond szinkronizáció synchronized: objektumonként metódusok kölcsönös kizárása wait(), notify(), notifyall() 11

Szálak szál indítása class MyThread extends Thread { public void run() { MyThread t = new MyThread( ); t.start(); VAGY class MyRunnable implements Runnable { public void run() { MyRunnable r = new MyRunnable( ); new Thread(r).start(); 12

Szálak példa class Game extends Thread { private bool running = true; float x, y; public void run() { // inicializálás float dx = 0.1; while (running) { // objektumok mozgatása x += dx; // leállási feltétel ellenőrzése running =...; // várakozás a következő időszeletre (100ms) sleep(100); // throws InterruptedException! 13

Szálak szinkronizáció class MyThread extends Thread { private int state; synchronized setstate(int s) { state = s; synchronized getstate() { return state; hálózat beállíthatja, megjelenítés kiolvashatja párhuzamosan az állapotot 14