5. feladatsor

Néhány további feladat:

A feladatok megoldásához ezeket vagy ezekhez hasonló adatfájlokat használjon:

5. feladatsor adatai

Ha sajátot ír, akkor figyeljen rá, hogy UTF-8 kódolással mentse, mert különben nem működik.

Természetesen adatbázisból is olvashat, sőt, célszerű lenne legalább egy-két feladat esetén onnan olvasni, de a megadott megoldásrészletekben text-fájlból olvasunk. Arról se feledkezzen meg, hogy - legalább néhány esetben - teszteket is készítsen.


Médiabirodalom 2.



Módosítsuk a 3. feladatsor Médiabirodalom 1. című feladatát, mégpedig úgy, hogy minél több minden szerepeljen benne az eddig tanultak közül. Grafikus felületen dolgozzunk, és választástól függően vagy fájlból vagy adatbázisból olvassuk be az adatokat – az újságnevek névsorba rendezetten jelenjenek meg a listafelületen.

A „választott fájl” menüpont hatására nyíljon meg egymás után két fájlválasztó ablak, az egyikből válasszuk ki a cikkek adatait tartalmazó fájlt, a másikból az újságokét. Ekkor persze illene legalább annyit tenni, hogy a gomb feliratával jelezzük, hogy épp mit választunk, pl. így:

fajlValaszto.setApproveButtonText(„Cikkbevitel”);

(A fájlválasztónak létezik „multipleSelection” módja is, úgy egyszerre lehet kiválasztani a két fájlt, de oda kellene figyelni arra is, hogy jó legyen a kiválasztott fájlok sorrendje. Ha kedve, ideje van, próbálja így is megoldani.)

A megoldás során használjuk ki, hogy az adatbevitel egy interfész implementálásával is megoldható.

Az Újságírás feliratú gomb hatására fusson le a korábbi ujsagIras() metódus, melynek során véletlen sokszor egy-egy véletlenül választott újságban jelentessünk meg egy-egy véletlenül választott cikket. A gombnyomás hatására azonnal jelenjen meg egy szövegmezőben a legtöbb cikket tartalmazó újságok névsora.

Az újságra kattintva a lista alatt lehessen látni értelemszerűen vagy a példányszámot vagy a linket, a másik listában lássuk a benne megjelent cikkeket. Egyszerre csak egy újságot lehessen kiválasztani.

A cikkek közül viszont akár többet is, a lista alatt pedig legyen látható a kiválasztott cikkek átlag-hazugság értéke.

Hogy a felhasználó tudja, hogy mikor mit is kell tennie, mindkét listához rendeljünk egy-egy ismertető tool-tip-et.

Használjunk igazi dátumokat. Így megoldható az is, hogy az újságok mellett olvasható legyen az is, hogy hány napja jelent meg az újság, illetve szűrni is lehessen, hogy az összeset szeretnénk-e látni, vagy csak az e haviakat.

A kimutatás fül értelemszerű, a Rendezés menüpont hatására pedig lehessen névsorba, megjelenési dátum, illetve cikkek száma szerint rendezni, választástól függően növekvő vagy csökkenő sorrendbe.


Néhány további képernyőkép: médiabirodalom_2_kepernyokepek

A képeken látható panelméret: 600 x 500 pixel - a frame méretének megadásakor ne felejtse el ehhez hozzáadni a tabulátorfülek, a menüsor és a keret szélességét (kb. 60-70 pixel).

A korábbiakhoz képest csak a dátumkezelés új, próbálja önállóan megoldani.

Segítség a dátumkezeléshez:

Az adatot Date típusúra kell deklarálni.

Beolvasás:

String-ből Date: datum =new SimpleDateFormat(datumFormatum).parse(stringAdat);

ahol a datumFormatum a beolvasandó dátum formátuma, esetünkben "yyyy.MM.dd".

Az Ujsag osztályban pedig a dátum String alakját kell előállítani. Ezt így lehet: new SimpleDateFormat("yyyy.MM.dd").format(datum);

(Majd még részletesebben is lesz szó dátumkezelésről, de ehhez a feladathoz ennyi is elég.)


Még egy észrevétel (bár ez nem teljesen kapcsolódik az eredeti feladathoz): Ha beállítjuk a táblázat AutoCreateRowSorter tulajdonságát, akkor a fejlécre kattintva az adott oszlop szerint lehet rendezni az adatokat.


Médiabirodalom 3.



Még mindig média: Az adatok beolvasása után most automatikusan indítsa el az ujsagIras() metódust (azaz véletlen sokszor egy-egy véletlenül választott újságban jelentessen meg egy-egy véletlenül választott cikket ), majd az eredmény így kerüljön ki egy grafikus felületre (kb. 600 x 400):

Rádiógombokkal lehessen kiválasztani, hogy melyik újságra vagyunk kíváncsiak. A ki­választott újság cikkei jelenjenek meg a cikkek listájában.

A lista egy-egy cikkét kiválasztva (egyszerre csak egyet lehessen választani) a lista alatt lehessen olvasni a cikk hazugságszázalékát. Ha valamelyik „kiveri a biztosítékot”, akkor ki is lehet törölni a listából.

A korábbiakhoz képest nincs benne új, próbálja önállóan megoldani.


Még egy könyvtár



A korábbi feladatok között már szerepelt könyvtár, de most kicsit másképp szimuláljuk egy könyvtár működését!

A program a baloldali képen látható felülettel indul. Az Adatbevitel gomb hatására beolvassuk az adatokat egy adatbázisból (első alkalommal a program hozza létre az adatbázist, később töltse be az aktuális állapotot). Sikeres beolvasás után megjelenik a középső felület (természetesen több könyv esetén a gördítősáv is). Itt lehet szimulálni a kölcsönzést, illetve a könyvek visszahozását.

A kölcsönzés gomb hatására ki lehet kölcsönözni a kijelölt könyveket, feltéve persze, hogy van belőlük példány. Ha épp nincs egyetlen kölcsönözhető példány sem, akkor adjon egy erre vonatkozó üzenetet. (Természetesen oop szemléletben oldja meg, vagyis a Konyv osztályban írja meg a kolcsonoz(), illetve visszahoz() metódusokat.) A kölcsönzés hatására eggyel csökken, a visszahozatal hatására eggyel növekszik a példányszám. (Visszahozatalkor lényegtelen, hogy eredetileg hány példány volt.) Természetesen a kiírásban is lássuk a változást! Kölcsönzés/visszahozatal után szűnjön meg a kijelölés.

A Raktár fülre kattintva jelenik meg a másik felület. Minden betöltődéskor az aktuális állapotot lássuk (vagyis annyi példányt, ahány éppen bent van a könyvtárban). A raktárkészletet írhatjuk szövegdobozba vagy listafelületre, de akár táblázatba is.

A Vásárlás gomb hatására a begépelt szerzőjű, című könyvből a begépelt darabot vásároljuk (természetesen a Konyv osztály Vasarol() meódusa segítségével). Ha van már ilyen könyv az eddigiek között, akkor ennyivel növekszik a példányszáma (az első oldalon is), ha még nincs, akkor hozzá­adjuk a listához (az első oldalon is).


A korábbiakhoz képest nincs benne új, próbálja önállóan megoldani.


Lokalizáció



Válassza ki valamelyik feladatot, és alakítsa többnyelvűvé. (Persze, az igazi az lenne, ha eleve erre készíti fel az alkalmazást.)