Kocsmázás

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.

kocsmazas.pdf