Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[Netbeans] ontwerp GUI

Pagina: 1
Acties:
  • 115 views sinds 30-01-2008
  • Reageer

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Topicstarter
Hi,

Ik ga nu in september beginnen aan mijn 2de jaar professionele bachelor toegepaste informatica.

In het eerste haar werkten wij met Eclipse, en schreven wij zelf onze GUI, met layoutmanagers en dergelijke.

Anyway, dit jaar leren wij dus werken met Netbeans, maar Nerdisch B) als ik ben, ik wil dat al onder de knie hebben.

Nu loop ik tegen een probleem aan, ik kan een JPanel form aanmaken, allerhande events toevoegen en code bijschrijven, werkt goed en zo :)

Maar dan maak ik een JFrame, en daarin wil ik dan die twee JPanels maken, 1 hoofdVenster, en 1 optiesVenster, wat ik als parameter hoofdVenster wil meegeven (voor het manipuleren enzo, anyway, you get the point).

Maar hoe doe ik da? Ik heb al geprobeerd een Bean aan te maken (gelijk ik heb gelezen in de tuto), maar dan verschijnt hij niet bij Beans van het JFrame.

De JPanels die ik heb gemaakt extenden eigelijk JPanel, dus public class hoofdVenster extends JPanel.

Veel tutorials bespreken welliswaar het schrijven van Java, maar geen enkele hoe je JPanels combineert in een JFrame.

Kan iemand mij uit de nood helpen?

Going for adventure, lots of sun and a convertible! | GMT-8


  • Apache
  • Registratie: Juli 2000
  • Laatst online: 18-11 22:50

Apache

amateur software devver

Vensters aan elkaar meegeven is zelden een goed idee, kijk naar het observer pattern voor als je wil reageren wanneer iets anders wijzigt, dan nog liever op een abstracter niveau zoals in je model waarbij je enkel manipulaties doet vanuit je UI.

K'heb zelf al een tijdje geen swing meer gebruikt, maar ik vermoed dat de JPanels ook extenden van iets als een Composite en dat je die gewoon kan toevoegen aan je root panel al dan niet op de correcte plaats zetten ivm een layout manager.

Mocht je je opleiding volgen aan de HIK, goeie tip, lees wat meer over OO design & patterns dan wat ze jullie leren, k'ben er zelf niet geweest maar heb met enkele studenten van daar gaan verder studeren aan de KUL en één van hun was er rotsvast van overtuigd dat je om een goed framework te bouwen je gewoon objecten moest bouwen die je kon overerven .... :P

If it ain't broken it doesn't have enough features


Verwijderd

Snake schreef op maandag 20 augustus 2007 @ 12:35:
Hi,

Ik ga nu in september beginnen aan mijn 2de jaar professionele bachelor toegepaste informatica. In het eerste haar werkten wij met Eclipse, en schreven wij zelf onze GUI, met layoutmanagers en dergelijke. Anyway, dit jaar leren wij dus werken met Netbeans, maar Nerdisch B) als ik ben, ik wil dat al onder de knie hebben.
Goed, dat is de juiste ingesteldheid die je moet trachten aan te houden, ook in het latere professionele leven. Altijd maar bij willen leren en zaken uitproberen. Top d:)b

Evenwel zou ik toch enige reserve aan de dag leggen omtrent Matisse. Natuurlijk is het knap als je de demos ziet hoe je met enige klikken en drag en drop eenvoudig componentjes kunt uitlijnen, maar dat doet niets af van het feit dat Matisse proprietary is. Ja, de layout manager zelf die Matisse gebruikt is standaard, maar Netbeans genereert per getekende GUI .form files. Ben je deze laatste kwijt, dan heb je enkel de "read-only" code om op terug te vallen. Je bent met andere woorden vastgekoppeld aan NetBeans, en laat Java nu net de termen 'openheid', 'overal inzetbaar', en 'standaard' hoog in het vaandel dragen. Ja, de class files zullen werken onder elke JVM, maar als jij als developer nadien gevraagd wordt om aanpassingen te doen zonder de .form file, dan ben je mooi de pineut. En je zal later nog wel leren dat kunnen inspelen op wijzigingen (naast goede algoritmes) dé belangrijkste eigenschap is van succesvolle softwareprojecten. Zelfs al heb je de .form file nog, dan nog ben je gekoppeld aan Netbeans.

Bij ons op het werk wordt bijvoorbeeld IntelliJ gebruikt (top IDE by the way), en deze heeft ook een Matisse-achtige layoutmanager die proprietary is. Proprietary technologie en het genereren van onleesbare code zijn dus belangrijke redenen waarom deze GUI-builders bij ons niet gebruikt worden. Kijk, ik kom dagelijks in aanraking met Swing en ja, ik vloek wel eens als ik componenten moet wrappen in een BoxLayout om ze in de controlerende GridBagLayout goed te laten uitlijnen, maar het punt is dat collega's of ik door naar een screenshot van het scherm en daarna naar de code te kijken héél snel doorhebben hoe de layout in elkaar zit en zodoende ook snel wijzigingen kunnen doorvoeren, en dat is heel belangrijk.

Tot slot zou ik nog willen meegeven dat het beter is algemene concepten goed onder de knie te krijgen dan met één specifiek product te leren werken. Probeer inzicht te krijgen hoe je het model en de GUI zo veel en zo duidelijk mogelijk van elkaar loskoppelt, leer hoe je event listener chains structureert om zelf het bos door de bomen niet kwijt te raken, bestudeer hoe je threading in GUIs gebruikt om deze laatste responsive te houden bij rekenintensieve of (mogelijk lang durende) netwerkopdrachten en probeer voorbeelden te vinden om uit te leggen waarom het belangrijk is om defensief te programmeren en code waar mogelijk te testen. Die kleine greep zaken zijn universeel, toepasbaar op Java, Qt, Cocao en .NET en komen in elk softwareproject voor. Dat is mijns inziens een veel betere besteding van je tijd dan te leren welke wizard je in Visual Studio moet doorlopen om resultaat X te bekomen of waar je op moet klikken in Matisse om tekst op positie Y te zetten.

  • Apache
  • Registratie: Juli 2000
  • Laatst online: 18-11 22:50

Apache

amateur software devver

Ik wil hier nog even aan toevoegen dat window builer pro een schitterende tool is om je gui's mee op te bouwen die helemaal geen enkele crap in de code plaatst en in heel veel gevallen omkan met bestaanded handcoded code.

Het is voor mij een onmisbare plugin geworden voor gui ontwerp, zowel voor swt, swing & gwt.
Hoewel het niet gratis is is het een zeer schappelijke prijs, dezelfde auteur heeft nog andere handige eclipse plugins en heeft ook een boek geschreven over development op het eclipse platform.

If it ain't broken it doesn't have enough features