Child pages
  • Egy alkalmazás 2 form
Skip to end of metadata
Go to start of metadata

Abszolút kezdő fejlesztőként belefognék életem első "üzleti" alkalmazásába, a feladatot végig gondolva azonban egy helyen megakadtam.

Egy korábban php-ban általam megírt nagyon primitív katalógust kellene átírnom javara.

A program jelenlegi működése:

  • adott egy nyitóképernyő, amelyen a katalógus 8 szekciójából lehet választani
  • a megfelelő szekció kiválasztása után másik képernyőre kerül a felhasználó, ezen a képernyőn van egy képmegjelenítő, egy szövegmegjelenítő és néhány lapozó
    gomb. A képeket a jelenlegi program a merevlemez egy adott könyvtárában találja. Minden képhez tartozik egy ugyanolyan nevű szövegfájl.
  • amikor a felhasználó az induló képernyőn kiválaszt egy szekciót, akkor a második lap betöltésekor a program egy tömbbe felolvassa a szekcióhoz tartozó fájlok nevét.
  • lapozáskor a tömbben lépeget és a megfelelő képet és szövegfájlt megjeleníti

Szerintem ideális gyakorló feladat LENNE számomra és úgy nem hívnának minden gép-újratelepítéskor, hogy tegyem fel az apache-ot és a php értelmezőt. (smile) Csakhogy míg web felületen egy oldalváltás annyiból áll, hogy átlépek egy másik lapra, addig rájöttem, hogy javaban ezt nem tudom hogyan kell csinálni.

Ha nem lenne a nyitóképernyő, akkor valószínűleg egyetlen osztályból és néhány belső osztályból álló kicsi alkalmazást kellene készítenem. De a nyitóképernyő bekavar. Hogy szokták ezt megoldani? Mi a megfelelő eljárás arra, hogy egy nyitóképernyőn egy gombot megnyomva egy másik felületre kerüljek? Több osztály vagy több keret? Tud valaki valami követendő utat mondani? Ráadásul a 2. képernyőről vissza kell tudni lépni az elsőre.

A könyv amit elolvastam nagyon tetszett és tényleg jó olvasmány volt. De a példáiban sosem fordult elő az hogy képernyőt kellett váltani. Így már a megoldás végiggondolásánál sikerül elakadnom.

Minden segítséget köszönök!

 

      
      
Page viewed times
#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))
  • No labels

6 Comments

  1. Az átírást úgy érted, hogy webről-webre? Milyen keretrendszert használsz Java esetén?

    1. Nem. Éppen ez a "ciki". Mivel csak webprogramozással foglalkoztam, ezért egy önálló munkaállomás csak azért futtat egy apache-ot, hogy a saját magán található php kódot a böngészője futtatni tudja. A cél tehát az, hogy egy önálló munkaállomáson natívan fusson a program. Semmilyen webes dolog nincs benne.

      Sajnos a "keretrendszer" fogalmát nem tudom értelmezni. Megírom a forrást notepad++ -al, aztán meg jöhet a javac xy.java.

  2. Ahja, akkor valami Swing-es GUI-t használsz... a Notepad++-t felejtsd el, tegyél fel egy NetBeans-t, hozzál létre egy "Java Application" projektet, majd adjál hozzá JFrame-et és ott tedd össze a GUI-t, drótozd hozzá az eseményeket, satöbbi. Saját magad szívatod, ha mindezt kézzel akarod csinálni.

  3. Igen, SWING a GUI. Feltehetem a NetBeans-t, de a lényegi kérdésemen ez sem változtat. Ha a program működéséhez több képernyő (jelen estben 2) kell, akkor mindkettő egy-egy frame? Egyszer az egyiket rejtem el, máskor meg a másikat, attól függően, hogy a felhasználó hová kapcsolt? Ez az amire a kezdőknek szóló könyvek nem térnek ki. Minden példa egyetlen egy frame-n belül marad, de az életben mindig sokkal több képernyő van. Persze tippem az lenne, amit írtam is: pl. a program fő képernyőjére úgy jut vissza a felhasználó, hogy az erre dedikált gomb eseményfigyelője elrejti a 2. képernyőt, és láthatóvá teszi az 1.   Csak pl. a könyvben amit elolvastam tucatnyiszor szerepel a frame.setVisible(true), de frame.setVisible(false) egyszer, sem. Szerencsére a gugli az megmondta, hogy olyan is van.

    Csak tényleg nem tudom, hogy jó-e ez a megközelítés? Több frame-t gyártok és mindig az eseményektől függően rejtem el az egyiket és jelenítem meg a másikat? Vagy másképpen csinálják, akik értenek hozzá?

     

    1. A lényegen nem változtat, csak egyszerűbb... (smile)

      Igen, vagy JFrame, amelyre teszel egy LayoutManagert (például Card Layout), amely mondjuk egymás alá teszi a tartalmat, és tudsz közöttük események hatására mozogni. De lehet olyat is, hogy csinálsz egy-egy JPanel-t és azt hivatkozod meg.

  4. Köszi! Mindkettőre sikerül példát találnom. Megvizsgálom, hogy melyik fekszik nekem jobban. Köszönöm a segítséget!