Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

B M Java Programozás 6. Gy: Java alapok IT A N Adatkezelő 2.rész

Hasonló előadás


Az előadások a következő témára: "B M Java Programozás 6. Gy: Java alapok IT A N Adatkezelő 2.rész"— Előadás másolata:

1 B M Java Programozás 6. Gy: Java alapok IT A N Adatkezelő 2.rész

2 A kód Feladat: folytassuk a panel életre keltését!
Alakítsuk ki a Lista panelt Betöltéskor olvassuk be az adatokat, és írjuk ki az adatsorok számát

3 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: Egy modellt használnánk csak a programban az egyszerűség miatt 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 A mezők típusa rendre: logikai, egész, szöveg, szöveg, szöveg, egész Csak a legelső (logikai) mezőnek kell szerkeszthetőnek lennie (a kijelölhetőség miatt!)

4 Lista panel kialakítás – tábla modell létrehozása
File \ New \ Class

5 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); } public boolean isCellEditable(int row, int col) { if (col == 0) {return true;} return false; public Class<?> getColumnClass(int index){ if (index == 0) return(Boolean.class); else if (index==1 || index==5) return(Integer.class); return(String.class); Zöld: kötelező rész, minden táblamodell-ben egyforma! Konstruktor: megkapja a mezők nevét és a sorok számát. Szerkeszthetőség: a 0. oszlop minden sora szerkeszthető, a többi cella nem! Oszlopok típusa: a 0. oszlop logikai, az 1. és az 5. egész, a többi szöveges!

6 Lista panel kialakítás – a panel létrehozása
New \ Swing \ JDialog

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

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

9 Lista panel kialakítás – a panel létrehozása
Töröljük ki a létrehozott nyomógomb panelt!

10 Lista panel kialakítás – a panel létrehozása
Hozzuk létre a Bezár nyomógombot

11 Lista panel kialakítás – a panel létrehozása
Adjunk a panelhez egy JTable-t.

12 Lista panel kialakítás – a panel létrehozása
Adjunk a JTable-höz egy JScrollPane-t (görgetősávok)

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

14 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: table = new JTable(etm); A táblázatban az etm modell fog megjelenni A kódból töröljük a main függvényt! Nem lesz önállóan futtatható a panel, ezért nem kell bele a main függvény!

15 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ő Modális ablak lesz, melyet be kell zárni ahhoz, hogy az alatta lévő ablak újra aktív legyen! A kód végére írjuk be a következőket: 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);} } 30 100 Oszlopszélesség megadása: a teljes szélességet felosztja az itt megadott értékek arányában!

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

17 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); } });

18 A Lista panel kipróbálása (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); } }); Példányosítás Megjelení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

19 A Lista panel kipróbálása (az EmpProgramban)

20 Adatok beolvasása csv fájlból
Programlogika: Egy külön osztályba tegyük a fájlkezelő rutinokat (FileManager) A rutin megkapja a beolvasandó fájl nevét, és a táblamodell nevét Beolvassa az adatokat, berakja a táblamodellbe, és visszaadja a táblamodellt import java.io.*; import javax.swing.JOptionPane; public class FileManager { private static String mes = "Emp program üzenet"; public static void CsvReader(File fnev, EmpTM etm) { String kod="", nev="", szido="", lakh="", iq="", s=""; try { FileInputStream f=new FileInputStream(fnev); LineNumberReader in=new LineNumberReader(new InputStreamReader(f)); 3/1

21 Adatok beolvasása csv fájlból
s=in.readLine(); //=== mezőnevek az első sorból s=in.readLine(); //=== adatsor while(s!=null) { String[] splitS = s.split(";"); kod = splitS[0]; nev = splitS[1]; szido = splitS[2]; lakh = splitS[3]; iq = splitS[4]; etm.addRow(new Object[]{new Boolean(false), StoI(kod), nev, szido, lakh, StoI(iq)}); s=in.readLine(); } in.close(); JOptionPane.showMessageDialog(null, "Adatok beolvasva!", mes, 1); } catch (IOException ioe) {JOptionPane.showMessageDialog( null, "CsvReader: "+ioe.getMessage(), mes, 0);} 3/2

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

23 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); fd.setFile("*.csv"); 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); } fdb.setText(""+etm.getRowCount()); }); Zöld: a meglévő kód Kék: új kódrészek

24 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 2 5 3 6 4

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

26 V É G E VÉGE


Letölteni ppt "B M Java Programozás 6. Gy: Java alapok IT A N Adatkezelő 2.rész"

Hasonló előadás


Google Hirdetések