Professionele GUI's

Status
Niet open voor verdere reacties.

Virusbeatboxing

Gebruiker
Lid geworden
11 nov 2011
Berichten
41
Beste,

Als student Informatica heb ik reeds een uitgebreid pakket Java en Object-georiënteerd programmeren gezien en heb ik de basics van het maken van GUI's onder de knie. Maar toch vraag ik mij af hoe ze het in de professionele wereld doen.

Ik heb reeds verschillende programma's willen maken maar kom telkens vast te zitten op 1 bepaald stuk.
Ik wil namelijk weten hoe het mogelijk is om binnen een JFrame enkele Panels te zetten met knoppen. Vervolgens moet het mogelijk zijn om, na het klikken van deze knoppen, een nieuw panel op dezelfde plaats te zetten.

Ikzelf 'loste' dit op door telkens in de constructor van de panels, de ContentPane van het Frame mee te geven maar ik heb zo een twijfels of dit écht wel zo hoort?

Ik hou namelijk van clean code, en waarschijnlijk moet dit ook zo, objecten maar ook elk panel in aparte klassen.

Indien mij iemand kan zeggen hoe dit het efficiënst opgelost kan worden, hoor ik die graag. Eventueel kan ook iemand mij een werkende applicatie geven waarin het principe uitgelegd wordt?

Bedankt alvast!
 
Laatst bewerkt:
Beste manamana,

bedankt voor de pdf maar beantwoordt mijn vraag nog niet. Heb de pdf even doorgenomen en deze basiskennis bezit ik reeds van Java. Enkel het principe van op een professionele manier wisselen van Panels in een JFrame blijft mij onbekend.

Iemand anders?
Alvast bedankt!
 
Oh jammer ik dacht wellicht staat daar wat tussen. En ja, de basis en nog veel meer weet je al natuurlijk. Ik dacht je zo een zetje te geven in de goede richting, maar helaas is dit niet zo.
 
Hey virusbeatboxing,

Fijn om te horen dat er iemand is die ook houd van clean code,
Ik kan persoonlijk echt niet tegen een rommeltje en houd van goed gedocumenteerde code!

Ik ben hier ook een tijdje naar op zoek geweest, en het meest nuttige dat ik heb gevonden is het volgende:
Java's CardLayout

Kijk maar eens naar de tutorial en anders hoor ik het wel weer!

Hopelijk kan je hier wat mee!
 
Als u naar het volgende kijkt ook niet volledig wat je wil maar benadert iets
http://code.google.com/p/javamylibs/source/browse/
onder
=>src=>be=>djdb=>generators
Dit is gebasseert op een collectie en maakt mogelijk een onmiddelijke vertaling laat toe pannels op te vissen en mogelijkheid alle functies te zien alle panels ectra,Eigenlijk merk je er weinig van aan de buitenkant maar je code ziet er helemaal anders uit en veel leesbaarder.

Code:
....
public class Main extends MYFORM{//JFRAME
	private ActionListener saveas;
....
 	private ActionListener save,savesettings,options,open,about;

....

        Menu menu= new Menu("Documentor");
     	menu.addmenuitem("File","open",new JMenuItem());
     	menu.addmenuitem("File","exit",new JMenuItem(),savesettings);
     	menu.addmenuitem("File","save",new JMenuItem(),save);
     	menu.addmenuitem("File","saveas",new JMenuItem(),saveas);
     	menu.addmenuitem("Edit","underconstruction",new JMenuItem());
     	menu.addmenuitem("Tools","options",new JMenuItem(),options);
     	menu.addmenuitem("Window","underconstruction",new JMenuItem());
     	menu.addmenuitem("Help","&About",new JMenuItem(),about);
		setJMenuBar(menu.getmenubar());
.....
 
@Rythmic
De CardLayout heb ik inderdaad eerder bekeken en zag er uit als een mogelijke oplossing maar ik vraag mij dan af of deze niet geheugen verslindend werkt? Aangezien je eerst alle panels er op toevoegt... of is dit zo minimaal dat je er weinig zal van merken bij een programma?

@kenikavanbis
Ziet er goed en clean uit. Zal de code ook eens bekijken op de link die je meegeeft. Alvast bedankt! :)
 
Om geheugen zal ik je bij iets dergelijks niet te druk maken, zeker niet bij Java.
Daarvoor hebben we de garbage collector!
 
Om geheugen zal ik je bij iets dergelijks niet te druk maken, zeker niet bij Java.
Daarvoor hebben we de garbage collector!
Toch een verbetering Het zou toch zeer stom zijn om bij elke visualisatie een nieuw object aan te maken.Geheugen is belangerijk elke plaats die je niet meer gebruikt null maken.Je mag niet vanuitgaan dat dit altijd lukt garbagecollection dit voor je zal vermoorden en niet zal gebeuren als hij denkt dat deze in gebruik zijn dus een finalize wordt dan ook niet overbodig beschouwd .
(dit is het geval als je triggers gebruikt zeker noodzakelijk en zou bij slecht gebruik het systeem kunnen doen vast lopen.
Dan hebben we nog niets gezegt over vereenvoudigen van if structuren door wet van morgan , ect. (Dit is enkel nodig als je zware programmatuur hebt) maar als je het nadien moet doen ???!!!???? dan ben je mogelijks niet meer vertrouwd met dat proccess en verlies je tijd=> dus onmiddelijk volgens de regels doen is de boodschap.
Laten we stellen dat veel proffesionele bedrijven en/of ze zich zo noemen toch niet aan beveiliging denken doordat: "de projectleider of manager te weinig tijd incalculeert" "door deadline en budjet"
"door programmeurs die te slordig zijn" iets om over na te denken oorzaken en gevolgen.
 
Laatst bewerkt:
Ik snap dat je je woede jegens mij telkens wil uitdrukken,
je tekst snap ik echter niet (alsof het recht van [insert foreign language] uit google translate komt, ongelofelijk).

Als hij zwaardere programmatuur maakt met bijbehorend geheugengebruik,
hoeft hij echt niet op helpmij te vragen hoe een professionele GUI word gemaakt.
Ik ga verder niet in op oorzaken en gevolgen en dergelijken, het gaat mij om de techniek.

Ik ga overigens ook echt niet uit van een gigantische hoeveelheid loze objecten, en ik sprak echter over wat voor hem van toepassing is.
Als hij zich op dergelijk niveau gaat bezighouden met GUI's en bijbehorende componenten,
dan neem ik aan dat hij/zij daarvoor kennis heeft, anders zou ik het hem/haar niet eens aanraden.
In een dergelijk geval kunnen er andere technieken worden gebruikt, maar ook externe libraries en dit alles is nu niet van toepassing.
 
Vanwaar wederom een aanval over iemands grammatica. Als je enige moeite doet om het door te lezen zou je zien dat de heer kenikavanbis zeer goede opmerkingen plaats. In plaats van de persoon af te kraken op grammatica zou je eens de moeite moeten nemen om te lezen wat er staat. Maarja je moet het zelf ook weten aangezien het jou verlies is om een kans iets te leren van een meer ervaren persoon niet aan te pakken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan