Java saját szoftver készítése 10. rész – Listener használata

Mielőtt tovább mennénk, írnék a többféle Listener-ről, melyet beépítettem a programomba. Ezekkel figyelem a program futtatását, és ha egy előre meghatározott dolog bekövetkezik, akkor végrehajtatok egy újabb programrészletet. (Kapcsolódó: What is the purpose of a listener in Java?)

Nagyon sok érdekességet találtam, úgyhogy most ezekről lesz szó részletesen.

Olvass továbbJava saját szoftver készítése 10. rész – Listener használata

Saját pénztermelő projekt 5. rész

Egész pontosan egy hónap és 10 nap telt el azóta, hogy megnéztük, az interneten ingyenesen fellelhető adatokból hogyan lehet pénzt csinálni programozással. Azóta tovább tisztult a leosztás, mivel a webprogramozó, akivel társultam, kissé lassú, rájöttem, hogy jobban megéri kézben tartani az adatokat is.

Most az a leosztás, hogy folyamatosan találom az interneten az újabb adattárakat, amiket én dolgozok fel a Java programozás segítségével, és neki csak az SQL adatbázist küldöm át. Az egyetlen feladata így csak az adatbázis feltöltése, és beillesztése a projektbe.

Felvetődhet a kérdés, miért nem én csinálom a webes részt? A fő válasz erre az, hogy nincs rá időm, és az a része a feladatnak amúgy is kevésbé érdekes. A Java-s rész viszont sokkal érdekesebb, erről mondok is pár szót.

Olvass továbbSaját pénztermelő projekt 5. rész

Java saját szoftver készítése 9. rész – MVC és DAO az Áfa modulon keresztül

Úgy látom, hogy korábban nem beszéltem a rendeléseket rögzítő szoftverem elvi felépítéséről, a különféle kérések kezeléséről, az adatok kiszolgálásáról. Itt jön képbe az MVC és a DAO, most ezeken keresztül mutatom be, hogy működik a programom.

Ha megnézzük a StudiCore Java SE tanfolyamának részleteit, ott az Adatbázisok + Java SE haladó eszközök kurzus 35. fejezete ez: JDBC II. – A DAO minta használata az adatbáziskezelésben. A DAO lényege, hogy a különféle adatbázisműveleteket DAO osztályokba tesszük, és objektumokat adunk át nekik, minden adattáblát önálló DAO osztály kezel.

Gondolom az előnye világos, ahelyett, hogy véletlenszerűen írogatnánk a sokféle forrásfájlba az adatbázis hívásokat, egy vagy több DAO osztályba tesszük ezeket, így módosításkor mindent könnyen megtalálunk, és nem lesz keveredés.

Az MVC pedig a szoftvertervezésben használatos szerkezeti minta, amely szétválasztja az adatok kezelését és a felhasználói felületet. Így anélkül lehet az adatokkal foglalkozó részt módosítgatni, hogy a felhasználók bármit is észre vennének belőle. Ezt az ötletet a mentorom adta még a tervezés korai szakaszában, és ennem megfelelően terveztem meg a programot.

Olvass továbbJava saját szoftver készítése 9. rész – MVC és DAO az Áfa modulon keresztül

Java saját szoftver készítése 8. rész – Értesítő ablakok

Írtam egy saját ErrorDialog osztályt, hogy a hibaellenőrzések során kapott problémákat meg tudjam jeleníteni. Aztán most eszembe jutott, hogy a StudiCore képzésében is volt szó ezekről az értesítő ablakokról, így a saját osztályra nem lesz szükség.

Ezek használata sokkal kényelmesebb, szabványosabb lesz a kód, és már egy csomó dolgot megírtak előttem, amit csak fel kell használnom:

Olvass továbbJava saját szoftver készítése 8. rész – Értesítő ablakok

Java saját szoftver készítése 7. rész – OrderDetailsDialog problémák

Hú, egy jó érdekes feladatba futottam bele, gondoltam megosztom mindenkivel. Van az OrderDetailsDialog osztályom, ami gyakorlatilag egy JDialog ablak. Ez a felelős a megrendelések felviteléért és a módosításáért is. Most még különösebb dizájn nélkül így néz ki:

orderdetailsdialog.jpg

Haladjunk felülről lefelé.

Olvass továbbJava saját szoftver készítése 7. rész – OrderDetailsDialog problémák

Most alakul ki a végleges terv

A múltkoriakban írt terveket egyedül készítettem, mivel pont akkor úgy jöttek össze az ünnepek, hogy nem volt elérhető a mentorom. Azóta már itt van, és a segítségével nagyon jó dolgok készülnek. Most úgy néz ki, hogy végre kikristályosodtak a felelősségi körök, és erről hamarosan újra írni is fogok.

Épp ma kaptam választ a mentoromtól egy utolsó kérdésre, ezt még értelmezem, és akkor tudom teljessé tenni az osztály diagrammot, illetve elkészíteni a szekvencia diagrammot. Közben már próbálgattam az ötleteket Javaban is, szereintem a megvalósítással nem lesz gond.

Tehát hétvégéig várható a kész modell, aztán utána a megvalósítás.

Java saját szoftver készítése 6. rész – ModifyDeleteDialog

Ugye most ott tartok a tervezésben, hogy vannak különféle listáim, melyek objektumokat tartalmaznak:

  • List<Order> orders: ez a megrendeléseket tartalmazza
  • List<Company> companies: a vállalatainkat tartalmazza
  • List<Customer> customers: a megrendelőket tartalmazza
  • List<Vat> vats: az áfa értékeket tartalmazza (mondjuk ez lehetne vatValues, szebben hangzik)
  • List<Employee> employees: ez pedig a dolgozóinkat tartalmazza

Tervezek egy ModifyDeleteDialog dialógusablakot, melyet az objektumok szerkesztéséhez és törléséhez használnék fel. Ez megkapná az adott listát, aminek elemeit egymás alatt megjelenítené. Ha a customers-t kapja meg, akkor az ügyfeleket listázza egymás alatt, ha az employees-t, akkor meg a munkatársainkat.

Olvass továbbJava saját szoftver készítése 6. rész – ModifyDeleteDialog

Java saját szoftver készítése 5. rész – SQL Date átalakítása LocalDate-ra

Most belefutottam egy problémába, az SQL adatbázisból kiolvasott Date típusú adatot használnám fel egy Order típusú objektum elkészítéséhez, ami viszont LocalDate típust vár.

A ResultSet rs tartalmazza az SQL lekérdezés eredményét. Egy while ciklussal végig megyek rajta, és kiolvasom a rekordokat. A getString metódussal kiolvasom a Date értéket, és azt átalakítom LocalDate típusúvá:

Olvass továbbJava saját szoftver készítése 5. rész – SQL Date átalakítása LocalDate-ra

Java saját szoftver készítése 4. rész

Elkészítettem azokat az osztályokat, melyek az adatbázisból kiolvasott adattáblák tartalmából készítenek objektumokat. A kiolvasás során létrejövő objektumok aztán majd listákba kerülnek, és azokat fogom feldolgozni és használni a vizuális felületen.

Egyelőre még csak a kontruktorokat, gettereket és settereket hoztam létre, illetve az adattagokat határoztam meg. Most látom már, hogy a múltkor használt adatbázis oszlopneveket kicsit majd át kell írnom, hogy ne legyen összevisszaság a programozás során. Inkább a Java-ban használatos elnevezést követem, pl a tax number az nem tax_number vagy taxnumber lesz, hanem taxNumber.

Olvass továbbJava saját szoftver készítése 4. rész