Foci EB 2.

Folytassuk a korábbi feladatot, és most grafikus felületen szimuláljuk a foci EB-t.

Mint korábban szó volt róla, a szimulációban házaspárok vesznek részt. A programban résztvevő minden egyes embernek van neve, és mindegyikükre jellemző a meccsnézés(), de teljesen eltérő módon, az viszont közös, hogy ennek során a megnézett meccs (vagyis a metódus para­métere) bekerül a megnézett meccsek listájába.

A férjek meccsnézése során a meccsek közben elfogyasztott sörök száma növekszik, mégpedig ha jó a meccs, akkor egy, az összes férjre egyformán jellemző darabszámmal, ha nem jó, akkor pedig ugyancsak egy egyformán jellemző, de másik darabszámmal.

A feleségek esetében a metódus hatására a szabadidejük mennyisége növekszik a paraméterben adott meccs hosszával.

A házaspárokat egy férj és egy feleség alkotja, és meccsnézés()ük során mindkét fél „nézi” a meccset.

Egy meccs megadásához két csapat kell. Jellemző rá a meccshossz(), amely a minden meccsre egyforma értékű játékidő és a ráadás összege.

Végezetül egy csapat a nevével jellemezhető. Jelenleg csak ennyi érdekes belőle, de nem kizárt, hogy valamikor később még bővíteni lehet majd.

Olvassa be a házaspárok és a csapatok adatait, de most úgy oldja meg a feladatot, hogy bármikor könnyen és gyorsan át lehessen váltani az adatfájlból való olvasásról adatbázisból való olvasásra, és viszont. A program indulásakor írassuk ki a házaspárok névsorát, illetve külön-külön a férjeket is és a feleségeket is. Induláskor még ne legyen látható a sörök és szabadidők értéke, ezek csak akkor jelennek meg, ha az illető személyek már láttak legalább egy meccset. Az átlag, összeg és persze, az aktuális meccs sem látszik induláskor, ezek csak az első meccsnézés után válnak láthatókká.

A Meccs feliratú gomb hatása:

A panel tetején megjelenik az aktuális meccs – ez úgy áll elő, hogy véletlenszerűen kiválasztjuk a meccshez tartozó két csapatot (figyeljen rá, hogy egy csapat ne játsszon saját magával, de persze, több meccs is lehet ugyanazon két csapat között). Állítsuk be a meccs ráadás-idejét – ez egy 0 és adott határ közötti véletlen érték, majd azt is, hogy jó-e a meccs – ennek esélye valahány százalék.

Ezek után a házaspárok véletlenszerűen „eldöntik”, hogy nézik-e a meccset – valahány százalék az esélye annak, hogy igen. Ennek hatására a férjekhez és feleségekhez kiírt adatok is változnak, illetve az átlag és összeg értékek is. A férjek, feleségek a két külön listában is „egymás mellett” legyenek, lehetőleg a házaspár férj tagjának sörszáma szerinti csökkenő sorrendben. A férjek névsora alatt jelenjen meg az összes férjre vonatkoztatott átlagosan fogyasztott sörszám, a feleségek névsora alatt pedig a feleségek összes szabadideje.

A felület belső mérete: 800*550 pixel.

Adatfájlok: foci_EB_1_adatai


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 - 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


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.

focieb_2.pdf