Gå til innhold

Swing og applikasjonsarkitektur for en nybegynner


Anbefalte innlegg

Heisann!

 

Jeg ønsker å skrive en en liten (men utbyggbar) applikasjon for å gjøre noen simuleringer og føre notater til en fil/database underveis.

 

Jeg har liten erfaring med Java, Swing og GUIer generelt, men noe fra C# og aspx web-applikasjoner og div. andre språk fra gamledager (C/C++,Perl). Følgelig vil jeg gjerne høre om arkitekturen jeg tenker meg er solid, eller om noen ev. kan peke meg til steder på veven som kan lære meg hvordan dette best kan gjøres.

 

Jeg forestiller meg at applikasjonen har to lag. Først Swing-tråden, og så en serie klasser og tråder som tar hånd om simuleringen.

 

Sentralt står den statiske klassen SimulationManager som inneholder metoder for å starte, stoppe, laste inn og nullstille simulasjonen. Denne har pekere til alle objekter involvert, og trådene som kjører.

 

Over dette, ligger den grafiske tråden hvor hvert vindu med gjevne mellomrom (javax.swing.Timer) leser data fra SimulationManager og presenterer endringene. Tilsvarende kan vinduene sette parametere i simulasjonen via SimulationManager og tilknyttede klasser.

 

Er dette en fornuftig arkitektur for en Swing-applikasjon?

 

Hilsen en Java-nybegynner. :)

Endret av Knutsi
Lenke til kommentar
Videoannonse
Annonse

Hmm, er ikke noen ekspert i arkitektur, men jeg tror du er inne på noe hvis jeg har forstått riktig.

 

Slik hadde jeg gjort det:

 

1.) Lage klassen som kjører programmet (main-metoden).

class Main {

   public static void main(String[] args)
   {
   	GUIClass gui = new GUIClass(); // Oppretter et objekt av GUIClass
   	gui.setVisible(true); // Gjør designet synlig
   }
   
}

 

2.) Lage en guiklasse (GUIClass) som inneholder designkodene og selvfølgelig private klasser innenfor GUIClass som lager hendelser til knappene du eventuelt skal ha (ActionListener).

 

3.) Lage simulasjonsklassen(e) som returnerer verdier som kan brukes i guiklassen ved hjelp av knappelyttere. Dette gjør du enkelt ved å opprette objekter av simuleringklassen din i knappelytteren, for så å kode hvor resultatene skal dukke opp osv.

 

Håper dette er et greit svar som kan hjelpe deg litt ;)

 

EDIT: Husk at alle operasjonene dine som ikke har noe med designet å gjøre i det hele tatt skal ligge i egne klasser. F.eks. lager du egne klasser for databasebehandling osv. GUI klassen er bare en overflate av hele programmet.

Endret av kjey
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...