Az eddigiek megünneplése (és összefoglalása) kedvéért kocsmázzunk egyet!
A 650*400-as belső felületű alkalmazásban választhassuk ki, hogy honnan olvassuk be az adatokat (adatfájl, adatbázis).
Ahogy látható, az itallapon szereplő italok között vannak alkoholos és nem alkoholos italok is. Az ital definiálásakor meg kell adnunk a fajtáját (bor, tea, víz, stb), vonalkódját és literenkénti árát. Az alkoholos italt a fentieken kívül még egy márkanév és az alkoholfok is jellemzi. Az egyes italokhoz az egyszerűség kedvéért rendeljünk default mennyiségeket.
A nyíllal jelölt gomb hatása: bekerülnek a rendelt italok a választott italok listájába.
A Fizet gomb hatására "fizessen", törölje ki a választott italok listáját, és írja ki a fizetendő összeget (nyilván a ténylegesen rendelt mennyiségek árát).
A választott italok listájára kattintva az itallap alatt jelenjen meg a kijelölt ital alkoholfoka, ha van, egyébként pedig az, hogy nem tartalmaz alkoholt.
A Rendezés menüpont hatására lehessen rendezni a kiválasztott módon.
Ha névsorba vagy ár szerint rendezünk, akkor a kiíratás maradjon olyan, amilyennek az első képen látja, de ha alkoholfok szerint, akkor az alkoholos italok mellé kerüljön oda zárójelben az alkoholfok értéke is. A menüpont csak a sikeres adatbevitel után váljon aktívvá.
A Súgó menüpont hatását és a File menüpont másik almenüjét is láthatja a fenti képen.
A könyvelés kartotékfül is csak a sikeres beolvasás után váljon aktívvá, és a hozzá tartozó panelen lehessen látni a kocsma kimutatását.
Ne felejtse el tesztelni az alaposztályokat!
Az adatbáziskezelés kipróbálásához ne felejtse el létrehozni az adatbázist, és ha Derby-t használ, akkor ne felejtse el hozzárendelni a projekthez a Java DB Driver-t. Ha másik adatbáziskezelőt használ, akkor értelemszerűen azt. (Kicsit később szó lesz majd arról, hogyan lehet automatizálni ezt a hozzárendelést.)
Adatok: kocsmazas_adatai
Néhány további képernyőkép: kocsmazas_kepernyokepek.pdf
Rendezhető listamodell lehetséges kódja: RendezhetoListModel.java
A feladat megoldása előtt, illetve közben célszerű átnézni a következő fogalmakat:
Swing felület felépítése, komponensek, JFrame, JPanel, JList, JTextArea, JLabel, JButton, MVC szemlélet, listafelület és modell, eseménykezelés, menüsor használata, enum, rendezhető listamodell, JDBC, fájl-választó, objektum szerializáció - ezekhez pl. itt találhat referenciákat :
https://docs.oracle.com/javase/tutorial/uiswing/learn/index.html
https://docs.oracle.com/javase/tutorial/uiswing/components/index.html
https://netbeans.org/kb/docs/java/quickstart-gui.html
https://www.tankonyvtar.hu/hu/tartalom/tamop412A/2011-0103_21_programozasi_technologiak/ch07.html
https://www.link-intersystems.com/blog/2013/07/20/the-mvc-pattern-implemented-with-java-swing/
https://www.tutorialspoint.com/design_pattern/mvc_pattern.htm
https://docs.oracle.com/javase/tutorial/uiswing/components/menu.html
http://tutorials.jenkov.com/java/enums.html
http://www.java2s.com/Tutorial/Java/0240__Swing/SortedListModelsortableJList.htm
http://www.oracle.com/technetwork/articles/java/sorted-jlist-136883.html
http://tutorials.jenkov.com/jdbc/index.html
https://docs.oracle.com/javase/tutorial/uiswing/components/filechooser.html
http://www.tutorialspoint.com/java/java_serialization.htm
de persze bármely más, a témával foglalkozó anyag is jó lehet.
Egy lehetséges megoldás olvasható a következő pdf fájlban. Próbálja meg megérteni és megoldani a leírtak alapján.