Ett Java baserat kassaregistersystem med grafiskt användargränssnitt (GUI) byggt med Swing.
Detta är ett komplett kassaregistersystem som simulerar en Point of Sale (POS) terminal. Applikationen är perfekt för små butiker, kaféer eller som ett utbildningsprojekt för att lära sig Java GUI-programmering och objektorienterad design.
- ✅ Produktkatalog: Fördefinierade produkter från CSV med namn, priser och moms
- ✅ Kvittohantering: Automatisk generering av detaljerade kvitton med momsberäkning
- ✅ Rabattsystem: 10% studentrabatt med checkbox
- ✅ Betalningsmetoder: Stöd för Kort, Swish och kontant betalning
- ✅ Interaktiv GUI: Produktknappar för snabb produktval + manuell inmatning
- ✅ Färgteman: Dynamisk färgväxling med "Theme"-knapp och slumpmässiga färger
- ✅ Modulär arkitektur: Välstrukturerad kod
- ✅ VS Code-integration: Komplett utvecklingsmiljö med build/debug-konfiguration
cashregister/
├── Main.java # Huvudklass som startar applikationen
├── .vscode/ # VS Code konfigurationsfiler
│ ├── settings.json # Java-projektinställningar
│ └── launch.json # Debug-konfiguration
├── .gitignore # Git ignoreringsfil
├── bin/ # Kompilerade .class-filer (automatiskt genererat)
│ └── cashregister/ # Paketstruktur för kompilerade klasser
├── model/ # Datamodeller (Business Objects)
│ ├── Product.java # Produktklass med pris och moms
│ ├── Receipt.java # Kvittoklass med rader och totaler
│ └── ReceiptRow.java # Kvittorad med produkt och antal
├── service/ # Tjänsteklasser (Business Services)
│ └── ProductCatalog.java # Produktkatalog med CSV-läsning
├── ui/ # Användargränssnitt (Presentation Layer)
│ ├── BusinessLogic.java # Affärslogik och datahantering
│ ├── CashRegister.java # Huvudfönster och GUI-koordination
│ ├── ColorThemeManager.java # Färgteman och visuella effekter
│ ├── ControlsPanel.java # Input-kontroller och knappar
│ ├── PaymentMethodPanel.java # Betalningsval (Kort/Swish/Kontant)
│ ├── ProductButtonsPanel.java# Produktknappar för snabbval
│ ├── ReceiptFormatter.java # Kvittolayout och formatering
│ └── ReceiptPanel.java # Kvittodisplay och textformatering
├── resources/
│ └── products.csv # Produktdatabas (CSV-format)
└── README.md # Denna fil
- Java JDK 8 eller senare
- Terminal/Kommandotolk
Metod: VS Code (om du använder VS Code)
- Öppna projektet i VS Code
- Tryck
Ctrl+Shift+P→ "Java: Run" - Eller använd Run/Debug-knapparna
- Välj produkter: Klicka på produktknapparna eller skriv produktnamn
- Ange antal: Specificera antal av vald produkt
- Lägg till: Klicka "Add" för att lägga till produkten på kvittot
- Rabatt: Aktivera 10% studentrabatt om önskat
- Betalning: Välj betalningsmetod (Kort/Swish/Ingen)
- Betala: Klicka "Pay" för att slutföra köpet
- Tema: Klicka "Theme" för att växla färgtema
- Språk: Java (JDK 8+)
- GUI Framework: Swing
- Build System: Manual compilation (javac)
- Filformat: CSV för produktdata
Version 2.0 - Oktober 2025
- ✅ Refactorisering: Delat upp stora klasser för bättre underhåll
- ✅ Tema-synkronisering: Alla UI-komponenter följer samma färgtema
- ✅ VS Code-integration: Komplett utvecklingsmiljö med debug-stöd
- ✅ Build-automation: Färdiga scripts för kompilering och körning
- ✅ Kodrensning: Förenklad Container-hantering och färglogik
Detta projekt demonstrerar:
- Objektorienterad programmering - Klasser, inkapsling, separation of concerns
- GUI-utveckling med Swing - JFrame, JPanel, event-hantering, färgteman
- Filhantering - CSV-läsning och databearbetning med felhantering
- Eventdriven programmering - Consumer interfaces, callbacks
- Utvecklingsverktyg - VS Code Java Extension, build scripts, debugging
Sally Altaie
Detta projekt är utvecklat för utbildningssyfte inom IOT25 kursen.