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

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

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

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

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

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

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

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

Java Programozás 11. Ea: MVC modell

Java Programozás 10. Ea: JDBC. SQLite alapokon

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

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

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

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

OOP: Java 8.Gy: Gyakorlás

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.

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

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

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 Java nyelv. Dialógus ablakok. Elek Tibor

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

Objektumorientált programozás C# nyelven III.

Programozási technológia

BME MOGI Gépészeti informatika 7.

4. Gy: JAVA osztályok

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

Informatika terméktervezőknek

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

A feladatok megoldásához felhasználandó osztályok leírásait az alábbi URL-en találja meg:

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

ZH mintapélda. Feladat. Felület

Torna. A torna.csv UTF-8 kódolású állományban soronként egy versenyző eredményeit tároljuk. Az adatokat pontosvessző választja el egymástól.

Programozási nyelvek Java

Java felhasználói felület

OOP: Java 4.Gy: Java osztályok

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

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

Szoftvertechnológia alapjai Java előadások

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

Objektumorientált programozás C# nyelven

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

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

Információs technológiák 2. Gy: CSS, JS alapok

Programozási nyelvek Java

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

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

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

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

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

Szoftvertechnolo gia gyakorlat

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

JAVA PROGRAMOZÁS 3.ELŐADÁS

A képernyőre írást igénylő részfeladatok eredményének megjelenítése előtt írja a képernyőre a feladat sorszámát (például: 3. feladat:)!

Algoritmusok és adatszerkezetek II.

Programozási technológia

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

BME MOGI Gépészeti informatika 4.

Segédanyag: Java alkalmazások gyakorlat

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.

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

Programozási nyelvek Java

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

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

1. Alapok. Programozás II

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

Java gyakorlat feladatai e s megolda sai ( )

Tájékoztató. Használható segédeszköz: -

Hozzunk létre két rekordot a táblában, majd véglegesítsünk (commit):

Kilencedik témakör: Lazarus-Firebird. Készítette: Dr. Kotsis Domokos

A WEB programozása - JSP1 dr.gál Tibor őszi félév

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

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

Kalapácsvetés 2016 szöveges

Excel VI. Haladó ismeretek. Makrók készítése Visual Basic nyelven Egyszerű Visual Basic program

és az instanceof operátor

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

Vizuális programozás gyakorlat

Szoftvertechnológia alapjai Java előadások

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

7. K: JAVA alapok Konzultáció

3. Osztályok II. Programozás II

Java felhasználói felület

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

Java és web programozás

BME MOGI Gépészeti informatika 13.

libgdx alapok, első alkalmazás

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

JavaServer Pages (JSP) (folytatás)

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

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?

INFORMATIKAI ALAPISMERETEK

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

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

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

munkafüzet open eseményéhez

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

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

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

Swing. (A javax.swing csomag)

Programozás I. Metódusok C#-ban Egyszerű programozási tételek. Sergyán Szabolcs

Átírás:

Java Programozás 6. Gy: Java alapok Adatkezelő 2.rész 25/1 B ITv: MAN 2018.04.13

A feladat Feladat: folytassuk a panel életre keltését! - Alakítsuk ki a Lista panelt - Betöltéskor olvassuk be az adatokat a fájlból, és írjuk ki az adatsorok számát 25/2

Lista panel kialakítás tábla modell létrehozása A táblázat kezelése egy táblamodellel kezdődik. A modellben lehet megadni az egyes mezők típusát és szerkeszthetőségét. A DefaultTableModel leszármaztatásával jön létre, konstruktorában kapja meg a mezőneveket, és az oszlopok számát. Programlogika: 1. Egy modellt használnánk csak a programban az egyszerűség miatt 2. A módosításnál és a törlésnél ki kell jelölni egy rekordot, így szükséges egy jelölhető (logikai típusú) mező a sor elejére 3. A mezők típusa rendre: logikai, egész, szöveg, szöveg, szöveg, egész 3. Csak a legelső (logikai) mezőnek kell szerkeszthetőnek lennie (a 25/3 kijelölhetőség miatt!)

Lista panel kialakítás tábla modell létrehozása File \ New \ Class - Neve legyen: EmpTM 25/4

Lista panel kialakítás tábla modell létrehozása import javax.swing.table.defaulttablemodel; public class EmpTM extends DefaultTableModel { public EmpTM (Object fildnames[], int rows){ super(fildnames, rows); 25/5 Zöld: kötelező rész, minden táblamodellben egyforma! Konstruktor: megkapja a mezők nevét és a sorok számát. public boolean iscelleditable(int row, int col) { if (col == 0) {return true; return false; Szerkeszthetőség: a 0. oszlop minden sora szerkeszthető, a többi cella nem! public Class<?> getcolumnclass(int index){ if (index == 0) return(boolean.class); else if (index==1 index==5) return(integer.class); return(string.class); Oszlopok típusa: a 0. oszlop logikai, az 1. és az 5. egész, a többi szöveges!

Lista panel kialakítás a panel létrehozása New \ Swing \ JDialog Vegyük ki a pipát! Utólag törölhető a panel, ha mégis marad a pipa! 25/6

Lista panel kialakítás a panel létrehozása Vegyük szélesebbre az ablakot 25/7

Lista panel kialakítás a panel létrehozása Kapcsoljuk ki az elrendezés menedzselését! 25/8

Lista panel kialakítás a panel létrehozása Hozzuk létre a Bezár nyomógombot 25/9

Lista panel kialakítás a panel létrehozása Adjunk a panelhez egy JTable-t. 25/10

Lista panel kialakítás a panel létrehozása Adjunk a JTable-höz egy JScrollPane-t (görgetősávok) 1 3 2 25/11

Lista panel kialakítás a panel létrehozása Futtassuk a kódot, nézzük meg a panelt! 25/12

Lista panel kialakítás a panel létrehozása Kódbűvölés következik! Az osztály elejére: private EmpTM etm; A JTable kódjába: A kódból töröljük a main függvényt! table = new JTable(etm); A táblázatban az etm modell fog megjelenni Nem lesz önállóan futtatható a panel, ezért nem kell bele a main függvény! 25/13

Lista panel kialakítás a panel létrehozása Alakítsuk át a konstruktor elejét: public EmpList(JFrame f, EmpTM betm) { super(f, "Dolgozók listája", true); etm = betm; Tulajdonos, ablak címe, modális jelző A kód végére írjuk be a következőket: Modális ablak lesz, melyet be kell zárni ahhoz, hogy az alatta lévő ablak újra aktív legyen! TableColumn tc = null; for (int i = 0; i < 6; i++) { tc = table.getcolumnmodel().getcolumn(i); if (i==0 i==1 i==5) tc.setpreferredwidth(30); else {tc.setpreferredwidth(100); 25/14 30 30 100 100 100 30 Oszlopszélesség megadása: a teljes szélességet felosztja az itt megadott értékek arányában!

Lista panel kialakítás a panel létrehozása A kód végére írjuk be a következőket: table.setautocreaterowsorter(true); AutoSorter bekapcsolása TableRowSorter<EmpTM> trs = (TableRowSorter<EmpTM>)table.getRowSorter(); trs.setsortable(0, false); A 0. oszlop rendezhetőségének letiltása 25/15

Lista panel kialakítás a panel bezárása Kattintsunk duplán a Bezár gombon Dizájn nézetben, így az Eklipsz hozzáad egy eseménykezelőt a gombhoz, és megnyitja a kódot! Írjuk be a Bezár gomb kódját: JButton btnnewbutton = new JButton("Bez\u00E1r"); btnnewbutton.addactionlistener(new ActionListener() { public void actionperformed(actionevent arg0) { dispose(); setvisible(false); ); 25/16 dispose(): eltűnik a képernyőről a panel, de a referenciái megmaradnak. setvisible(false): eltűnik a képernyőről a panel, de a referenciái megmaradnak. A két utasítás hatása ugyanaz, elég az egyiket használni!

A Lista panel megjelenítése (az EmpProgramban) Kódok beszúrása: Az osztály elejére: private EmpTM etm; A Lista gomb kódja: JButton bl = new JButton("Lista"); bl.addactionlistener(new ActionListener() { public void actionperformed(actionevent arg0) { EmpList el = new EmpList(EmpProgram.this, etm); el.setvisible(true); Megjelenítés ); Példányosítás A konstruktor végére: Mezőnevek megadása Object emptmn[] = {"Jel","Kód","Név","Szülidő","Lakóhely","IQ"; etm = new EmpTM(emptmn, 0); etm példányosítása: mezőnevekkel, 0 darab sorral 25/17

A Lista panel kipróbálása (az EmpProgramban) 25/18

Adatok beolvasása csv fájlból Programlogika: 1. Egy külön osztályba tegyük a fájlkezelő rutinokat (FileManager) 2. A rutin megkapja a beolvasandó fájl nevét, és a táblamodell nevét 3. Beolvassa az adatokat, berakja a táblamodellbe, és visszaadja a táblamodellt import java.io.*; import javax.swing.joptionpane; 3/1 public class FileManager { private static String mes = "Emp program üzenet"; 25/19 public static void CsvReader(File fnev, EmpTM etm) { String kod="", nev="", szido="", lakh="", iq="", s=""; try { BufferedReader in = new BufferedReader(new FileReader(fnev)); BufferedReader: pufferelt szövegolvasó. A fájlból egyszerre max. 1024 kb-ot olvas be a memóriába, és onnan lehet soronként kiolvasni az adatokat.

Adatok beolvasása csv fájlból s=in.readline(); //=== mezőnevek az első sorból 3/2 s=in.readline(); //=== adatsor while(s!=null) { String[] st = s.split(";"); etm.addrow(new Object[]{new Boolean(false), StoI(st[0]), st[1], st[2], st[3], StoI(st[4])); s=in.readline(); in.close(); JOptionPane.showMessageDialog(null, "Adatok beolvasva!", mes, 1); catch (IOException ioe) { JOptionPane.showMessageDialog( null, "CsvReader: "+ioe.getmessage(), mes, 0); 25/20 s 21;Kő Éva;1999.12.21;Miskolc;118 st 21 s.split(";"); Kő Éva 1999.12.21 Miskolc 118

Adatok beolvasása csv fájlból public static int StoI(String s){ int x=-55; x = Integer.parseInt(s); return x; 3/3 25/21

Betöltés a.csv olvasás életre keltése A Betöltés gomb kódja az EmpProgram osztályban JButton bb= new JButton("Bet\u00F6lt\u00E9s"); bb.addactionlistener(new ActionListener() { public void actionperformed(actionevent arg0) { if (forras.equals("helyi.csv fájl")) { FileDialog fd = new FileDialog(new Frame(), " ", FileDialog.LOAD); ); 25/22 fd.setfile("*.csv"); A meglévő kód fd.setvisible(true); if (fd.getfile()!= null) { fbe = new File(fd.getDirectory(), fd.getfile()); String befnev = fd.getfile(); fnev.settext(befnev); FileManager.CsvReader(fbe, etm); Kék: új kódrészek fdb.settext(""+etm.getrowcount());

Lista panel kialakítás a panel kipróbálása Ha mindent jól csináltunk, a program betölti és megjeleníti a csv fájlok tartalmát: 1 5 2 3 6 4 25/23

Lista panel kialakítás a panel létrehozása 25/24

VÉGE VÉGE 25/25