Triple Eye Industrieel Ingenieur Informatica Algemeen Intranet Tweede jaar INWE Programmeren van GUI's GUI's Java
Labo GUI's 09-10: Java Swing project

Labo GUI's 09-10: Java Swing project

Opdracht: maak een diagram-editor, analoog aan de modeloplossing DiagramEditor.jar.

Functionaliteit

  • Je kunt een knoop toevoegen door dubbel te klikken
  • Je kunt de tekst in een knoop bewerken door dubbbel te klikken in de knoop
  • Je kunt knopen verslepen
  • Je kunt twee knopen verbinden door te slepen met de rechtermuisknop. De verbindingen worden getekend van en naar het centrum van beide knopen. Als de knoppen daarna verplaatst worden, volgen de verbindingen. worden
  • Je kunt een knoop of verbinding selecteren door er op te klikken
  • Als de muis boven een knoop of verbinding komt wordt die 'opgelicht'
  • Rechtsklikken geeft een context-menu
  • Je kunt een geselecteerde knoop of verbinding wissen via de delete-knop, via het contextmenu of via het edit-menu
  • In het edit-menu kun je de achtergrondkleur van het blad instellen.
  • In het edit-menu kun je pagina-instellingen opgeven: breedte, hoogte.
  • Opm. knopen en verbindingen kunnen buiten de "pagina" vallen.
  • In het edit-menu kun je ook het diagram volledig wissen ("clear")
  • In het file-menu kun je een diagram bewaren en openen. Eens bewaard verschijnt de naam in de titel en kun je opslaan
  • De toolbar is versleepbaar.
  • De toolbar bevatten knoppen (met pictogrammen en help-tekst) voor bewaren en inladen.
  • Je kunt het diagram bewaren en inladen via het File-menu of via de knoppen op de toolbar. Dit gebeurt d.m.v. serialisatie.
  • Na het bewaren wordt de save-actie gedisabled (en krijgt het frame een titel). Als er iets wijzigt aan het diagram wordt de save-actie weer ge-enabled.
  • Je kunt de zoomfactor ingeven via een spinner (minimaal 1!).
  • Als het diagram groter wordt dan het venster, dan verschijnen er scrollbars
  • Het hele frame is resizable.
  • Linker- en rechterpaneel zijn apart resizable
  • In het properties-paneel kun je de eigenschappen van de geselecteerde knoop of verbinding editeren. Beide hebben een eigenschap "kleur" en een eigenschap "lijndikte". Knopen hebben tevens een eigenschap "tekst".

    Algemene opmerkingen:

  • zorg er in dialoogvensters en propertiespaneel voor dat "cancel" of "esc" correct werkt.
  • Maak gebruik van actieklassen (implementeren javax.swing.Action)
  • Hou er bij het ontwerp rekening mee dat er nog andere objecten zouden kunnen bijkomen, met andere properties. M.a.w. zorg voor een generieke aanpak, waarbij elk tekenobject een aantal properties heeft (je kunt hiervoor bv. een Map gebruiken)

  • W. Schepens 07/11/2008

    Welkom | Hogeschool Gent | INWE | Studentenserver | Docentenserver | Intranet