Obligatorisk oppgave - låneapplikasjon

Klikk her for komplett kjørbar jar-fil.

Grunnen til at jeg har lagt ved denne oppgaven er i hovedsak for å vise hvordan jeg koder i Java

Oppgaven gikk ut på å lage en låneapplikasjon som genererte en nedbetalingsplan. Man skulle kunne ha flere interne vinduer og også lagre til og hente fra database. I oppgaven min brukte jeg kun en lokal SQL-database på mac'en (derfor vil ikke databasedelen i jar-filen fungere).

Nedenfor finner du en kort beskrivelse og link til hver javafil (med syntaks highligthning). Filene inneholder også kommentarer fra læreren. Denne oppgaven prøvde jeg å lage med tanke på at den skulle kunne utvides. Derfor brukte jeg en del tid på å forenkle laging av menyer, skille hardt mellom model-view-controller, m.m. Nedenfor finner du en UML over prosjektet.

UML

Main

import app.controller.LoanApp;

/**
 * Main.java
 *
 * Klassen inneholder kun en main som starter programmet
 * @author: Hilde Vestøl (106288)
 * @version: 0.9
 */


public class Main {

    /**
     * Starter selve programmet
     * @param args
     */

    public static void main (String[] args) {
        
        //Starter selve applikasjonen
        LoanApp app = new LoanApp();
        
    }

}

Model

  • Loan.java: Selve låneklassen inneholder lånet. Her opprettes også nedbetalingsplan
  • LoanException.java: En egen klasse for Exceptions.
    Kunne også brukt IllegalArgumentException direkte
  • Nedbetalingsplan.java: Generer selve nedbetalingsplanen
  • Termin.java: Terminklassen som kun tar vare på seg selv
  • DatabaseTilkobling.java: NB! Mangler i UML (oppgaven var delt i to, databasedelen kom i del to, UML i del 1). Tilkobling til databasen

Controller

  • LoanApp.java: Selve applikasjonen (startes fra main som er en egen fil). Fungerer som controller. Inneholder alle typer lyttere. Klassen oppretter et lån, og ett vindu. Tanken er at denne skal mest mulig skap et skarpt skille mellom modell og view (selv om jeg tror kanskje jeg bryter mvc prinsippet litt noen ganer)

View

  • Vindu.java: Vinduet oppretter interne vinduer. Fungerer som et mellomledd mellom controller og indrevinduer. Har prøvd mest mulig å skille mvc. Controlleren trenger ikke detalj kunnskap om de indre vinduene, det har Vinduet.
  • InterntVindu.java: De interne vinduene i programmet.
  • MenyApp.java: En klasse som kun lager selve menyen.
  • MenyLinje.java: En klasse for å forenkle måten jeg lager Menyer på. Inneholder noen indre klasser.

Skjermbilde

laaneapp

Kontaktinfo

Hilde Vestøl
98883064
hilde@vestol.net

kart