Neviem či je toto správne riešenie problému, no k ničomu lepšiemu som sa nedogoolil, tak som bol nútený vymyslieť vlastné.
Btw, je to môj prvý GUI program v jave, takže z osobných skúseností tiež moc čerpať nemôžem..
A teraz už k veci. V programe v GUI vrstve používam v jeden JFrame a v ňom tri JPanely, ktoré podľa potreby nastavujem cez setVisible() tak, že je vždy viditeľný samozrejme iba jeden. Funguje to preto, že to mám všetko naprasené v jednom súbore, ktorý má cez 900 riadkov a ja sa už na to nemôžem dlhšie pozerať. Chcel by som to prepísať pekne do tried, no nie je mi celkom jasné, ako potom budem nastavovať vizibilitu tých panelov. Problém je ten, že JFrame má v sebe tie tri JPanely, ale tie panely o sebe nevedia, takže nemôžem volať z jedného na druhý setVisible(), tým pádom neviem ohandlovať napríklad stlačenie tlačítka cancel v jednom paneli tak, aby som sa prepol niekde do iného panelu. Takže otázka je, či je toto dobrý návrh, alebo to ide aj lepšie s prepínaním screenov. Niekde som čítal, že CardLayout je na toto dobré, no ja používam GridBagLayout v tých JPaneloch.
To je jedna vec. Druhá vec je, ako si predávať medzi tými panelmi triedu Model, ktorá v sebe uchováva dátovú časť programu. Moja prvotná myšlienka bola implementovať to ako MVC, no nejak aj po prečítaní niekoľkých článkov nie som schopný vymyslieť ako kompozične rozložiť model, view a controller tak, aby to všetko spolu pracovalo.. takže to mám bez controlleru, pričom model je v triede view, čo mi zatiaľ v tak malom programe moc nevadí a všetko funguje ako má.. no je to fakt hnusné a nepáči sa mi to a naviac to nie je rozšíriteľné, čo mi vadí, kedže na tom chcem ďalej pracovať (momentálne to robím ako semestrálku).
Ak tu je nejaký schopný javista, tak by som mu bol povďačný za rady. Dík