JensDT42
Legacy Member
Tot zover heb ik geen ervaring met GUIs in Java, maar een nieuw hobby-project dwingt me er toe. Na wat opzoekingswerk blijf ik toch met enkele vragen zitten, vooral om de leesbaarheid/uitbreidbaarheid van m'n code te vergroten. Eigenlijk ben ik nog niet zo goed uit over hoe concreet een GUI moet aangepakt worden.
Momenteel heb ik zoiets:
1 JFrame (welja, een klasse die JFrame extend), en per verschillend 'venster' laad ik een nieuwe JPanel, dus een andere subklasse van JPanel per venster. In die subklasse laad ik dan de buttons, labels, etc...
Bijvoorbeeld, neem dat er bij het openen van het programma een JPanel getoond wordt met verschillende knoppen, die verwijzen naar verschillende onderdelen van het programma (en voor de eenvoud van de discussie wil ik niet dat deze in een apart venster geopend worden). De 'actionListener' van die buttons (dus deze die een verandering van 'panel' veroorzaken) is mijn JFrame klasse. Andere buttons (om bijvoorbeeld waarden in een tekstveld te wissen) hebben die panel-subklasse als actionListener.
Is dit nu een goede manier of njet? Zonee, kan je me in de juiste richting wijzen? Ik zou trouwens het gebruik van grafische tools om de GUI aan te maken zoveel mogelijk willen beperken, omdat sommige van de GUI elementen dynamisch zijn adhv gegevens in een DB, en dan vind ik het nogal ambetant om wijs te raken uit die voorgegenereerde code van die tools.
Momenteel heb ik zoiets:
1 JFrame (welja, een klasse die JFrame extend), en per verschillend 'venster' laad ik een nieuwe JPanel, dus een andere subklasse van JPanel per venster. In die subklasse laad ik dan de buttons, labels, etc...
Bijvoorbeeld, neem dat er bij het openen van het programma een JPanel getoond wordt met verschillende knoppen, die verwijzen naar verschillende onderdelen van het programma (en voor de eenvoud van de discussie wil ik niet dat deze in een apart venster geopend worden). De 'actionListener' van die buttons (dus deze die een verandering van 'panel' veroorzaken) is mijn JFrame klasse. Andere buttons (om bijvoorbeeld waarden in een tekstveld te wissen) hebben die panel-subklasse als actionListener.
Is dit nu een goede manier of njet? Zonee, kan je me in de juiste richting wijzen? Ik zou trouwens het gebruik van grafische tools om de GUI aan te maken zoveel mogelijk willen beperken, omdat sommige van de GUI elementen dynamisch zijn adhv gegevens in een DB, en dan vind ik het nogal ambetant om wijs te raken uit die voorgegenereerde code van die tools.