/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
GUI - hvad er den typiske løsning
Fra : Holger Danske


Dato : 07-09-03 14:43

Hejsa

I forbindelse med konstruktion af et GUI, hvad er så den typiske
fremgangsmåde? Altå hvordan "forbinder" man typisk de forskellige dele
af GUI'en. Foregår det som i nedenstående eller har jeg helt misforstået
hvordan det skal hænge sammen? Erklærer man de forskellige hoved-
elementer i GUI'en som public members, således at de kan tilgås fra alle
andre funktioner i klassen.

Gode råd og links modtages gerne.

PS. Det er i forbindelse med appletter og AWT.

class Bottom extends Panel {
// undladt
}

class Top extends Panel {
// undladt
}

public class GUI {
Top top;
Bottom bottom;

public void init() {
setLayout(new BorderLayout());
Top top = new Top;
top.labelText.text = "blah blah blah";
add("North", top);
Bottom bottom = new Bottom();
add("South", bottom);
}

// kaldes fra et eller andet sted.
en_eller_anden_metode() {
top.labelText.text = "ikke blah blah blah";
}
}

 
 
Niels Dybdahl (07-09-2003)
Kommentar
Fra : Niels Dybdahl


Dato : 07-09-03 19:46

> I forbindelse med konstruktion af et GUI, hvad er så den typiske
> fremgangsmåde? Altå hvordan "forbinder" man typisk de forskellige dele
> af GUI'en. Foregår det som i nedenstående eller har jeg helt misforstået
> hvordan det skal hænge sammen? Erklærer man de forskellige hoved-
> elementer i GUI'en som public members, således at de kan tilgås fra alle
> andre funktioner i klassen.
> ...
> class Bottom extends Panel {
> // undladt
> }
>
> class Top extends Panel {
> // undladt
> }
>
> public class GUI {
> Top top;
> Bottom bottom;
>
> public void init() {
> setLayout(new BorderLayout());
> Top top = new Top;
> top.labelText.text = "blah blah blah";
> add("North", top);
> Bottom bottom = new Bottom();
> add("South", bottom);
> }
>
> // kaldes fra et eller andet sted.
> en_eller_anden_metode() {
> top.labelText.text = "ikke blah blah blah";
> }
> }

Det er ikke helt forkert. Du skal dog undlade Top og Bottom i init, da
variablene top og bottom allerede er erklæret.
Nogle (f.eks JBuilder) laver de nye instancer af Top og Bottom ved
konstruktionen af GUI, hvilket har den fordel at man ikke risikerer en
nullpointer fejl, hvis man bruger Top og Bottom inden init.

Niels Dybdahl



Kurt Kjær Jensen (07-09-2003)
Kommentar
Fra : Kurt Kjær Jensen


Dato : 07-09-03 21:33

Holger Danske wrote:

> Hejsa
>
> I forbindelse med konstruktion af et GUI, hvad er så den typiske
> fremgangsmåde? Altå hvordan "forbinder" man typisk de forskellige dele
> af GUI'en. Foregår det som i nedenstående eller har jeg helt misforstået
> hvordan det skal hænge sammen? Erklærer man de forskellige hoved-
> elementer i GUI'en som public members, således at de kan tilgås fra alle
> andre funktioner i klassen.
>
> Gode råd og links modtages gerne.
>
> PS. Det er i forbindelse med appletter og AWT.
>
> class Bottom extends Panel {
> // undladt
> }
>
> class Top extends Panel {
> // undladt
> }
>
> public class GUI {
> Top top;
> Bottom bottom;
>
> public void init() {
> setLayout(new BorderLayout());
> Top top = new Top;
> top.labelText.text = "blah blah blah";
> add("North", top);
> Bottom bottom = new Bottom();
> add("South", bottom);
> }
>
> // kaldes fra et eller andet sted.
> en_eller_anden_metode() {
> top.labelText.text = "ikke blah blah blah";
> }
> }

Hej Holger

Det er meget et spørgsmål om smag og effektivitet. Ved nogenlunde simple
paneler plejer jeg bare at lave nogle get-metoder, som udleverer et
Panel (eller JPanel) med den ønskede opbygning. Det kunne her være
private Panel getTopPanel().

Hvis man vil nedarve Panel/JPanel som her, så bør Top og Bottom også
indeholde metoder som getLabelText() hhv. setLabelText(...), ligesom
labelText bør være privat. Og det er bedst at lave en nedarvning lige så
snart det handler om større paneler eller ikke-triviel funktionalitet...

BTW, det er en god ide at kalde de nedarvede klasser fx. TopPanel og
BottomPanel, så man bedre kan se hvad det handler om

--
Vh Kurt http://www.aub.dk/~kkjen


Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408188
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste