B M Java Programozás 5. Gy: Java alapok IT A N Adatkezelő 1.rész
Feladat Egy nagyon hosszú feladatmegoldásba kezdünk bele: létrehozunk egy adatkezelő programot, sok-sok extrával:
A kód 1. feladat: töltse le mindenki a programot, és olvassa át a Helpet!
A kód 2. feladat: készítsük el a főablak egy részét: Nyomógombok Feliratok Legördíthető lista Szövegmezők Panel háttérszín
A projekt létrehozása File \ New \ Java project
Az ablak létrehozása New \ Swing \ JFrame
Layout (elrendezés) beállítása Design! Helyi menüből kell kiadni a parancsot!
Panel háttérszín beállítása Panel legyen kijelölve! 2x
Nyomógombok készítése
Nyomógombok készítése Kódban átalakítjuk a gomb tulajdonságait! Dizájn felület Futtatási felület
Nyomógombok készítése – másolással Kijelöljük a meglévő (beállított) gombot, és Ezután , és a megfelelő helyre rakjuk a gombot Beállítjuk a tulajdonságait, de panelen! Ctrl C + Ctrl V + Legördítve szerkeszthető
Nyomógombok készítése – másolással Bezár gomb létrehozása másolással, beállítása panelen Eseménykezelő hozzáadása: Jobb klikk a gombra Add event handler \ action \ actionPerformed Kódban beírni: System.exit(0); bz.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); } });
Feliratok elkészítése Jlabel hozzáadása, beállítása A másodikat egyszerűbb másolni!
Legördíthető lista elkészítése JComboBox elem hozzáadása a panelhez Változó nevének módosítása
Legördíthető lista – elemek hozzáadása Kódban módosítások: String elem[] = {"Válasszon!","Helyi .dat fájl", "Helyi .xml fájl","Helyi .csv fájl","SQLite DB", "Web: JSON fájl"}; JComboBox jcbf = new JComboBox(); for (String s: elem) jcbf.addItem(s); Futtatási felület
Szövegmezők hozzáadása Dizájn felületen:
Szövegmezők hozzáadása Dizájn felületen:
Legördíthető lista – események kezelése Dizájn felületen módosítás: Kódban: Eseménykezelő hozzáadása: Jobb klikk a JComboBox-ra Add event handler \ action \ actionPerformed private String forras="Válasszon!"; JComboBox jcbf = new JComboBox(); for (String s: elem) jcbf.addItem(s); jcbf.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { forras = (String)jcbf.getSelectedItem(); fnev.setText(forras); fdb.setText("4"); } }); Kipróbálás, tesztelés miatt! Rövidesen módosítjuk!
Legördíthető lista – próba Futtatási felület
Hozzuk létre az Emp.csv fájlt Bárhol lehet a fájlrendszerben! Olyan szövegfájl, mely első sorában tartalmazza a mezők nevét, ezután soronként az adatokat, pontosvesszővel elválasztva!
Magyarázatok Programlogika: Kiválasztjuk a forrást A Betöltés gombra kattintva megjelenik egy fájlválasztó panel A panelen csak olyan kiterjesztésű fájlt választhatunk ki, amilyen a kiválasztott forrás típusa! Válasszunk ki a panelen egy fájlt A kiválasztott fájl neve íródjon ki a forrás melletti mezőbe Olvassuk be az adatokat, és írjuk ki a számukat
Betöltés – eseménykezelő hozzáadása Jobb klikk a Betöltés gombra: Add event handler \ action \ actionPerformed Kód módosítása:
Betöltés – csv esemény kódja 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.show(); if (fd.getFile() != null) { fbe = new File(fd.getDirectory(), fd.getFile()); String befnev = fd.getFile(); fnev.setText(befnev); } }); Csak .csv fájlok jelenjenek meg Könyvtár és fájlnév, együtt a fájl! Importok szükségesek a FileDialog és a File miatt, és kell az fbe változó deklarációja is!
Betöltés – csv esemény kódja import java.io.*; import java.awt.*; private File fbe; 3 2 1 5 6 4 7
További módosítások Ha nincs kiválasztva forrás, a Betöltés megnyomása dobjon hibaüzenetet: JButton bb= new JButton("Bet\u00F6lt\u00E9s"); bb.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { if (forras.equals("Válasszon!")) JOptionPane.showMessageDialog( null, "Először válassza ki a Forrás-t!", mes, 0); if (forras.equals("Helyi .csv fájl")) { . . . } }); private String mes = "Emp program üzenet";
További módosítások Hiányzott valamilyen import, ezen berágtam, és a meglévő összes importot kitöröltem, és helyettesítettem a következővel: Egy hibás sor maradt, valamilyen EmptyBorder. Mondtam kétszer az Eklipsznek, hogy ha akarja, javítsa ki, de nem akarta. Így ezt a sort kitöröltem! Nem haragszom az Eklipszre, csak azt érezteti velem, hogy felsőbb rendű mint én, és ezt nem szeretem! import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*;
Próba – Nekem működik a kód!
V É G E VÉGE