Hint til oppgave 6
Bygg opp programmet i flere steg.
Brukergrensesnittet
Start med å lage brukergrensesnittet, og se gjerne bort fra layout i første omgang. Bare sørg for at komponentene blir synlige.
Lytt både på de to knappene og tekstfeltet der brukeren skriver inn varenummeret. Legg på testutskrifter slik at du er sikker på at hendelser blir fanget korrekt, f.eks: "Du klikket på søk-knappen".
Du kan nå enten gå videre å programmere logikken i programmet, eller fullføre GUI-delen ved å legge på layout-håndterere. Utseendet skissert i figuren på side 352 er krevende å få til med kun FlowLayout og BorderLayout. Se eventuelt på GridLayout i Java-dokumentasjonen. Eksempel på bruk:
// Et panel med 4 rader og 2 kolonner, samt 5 piksler // luft både mellom rader og kolonner: JPanel panel = new JPanel(); GridLayout layout = new GridLayout(4, 2, 5, 5); panel.setLayout(layout);
Etikettene og tekstfeltene kan legges inn i et slikt panel.
Oppsett av database
Sørg for at SQLite er installert, som forklart på nettsidene til kapittel 7.
Lag et SQL-skript som oppretter tabellen Vare med noen eksempelrader. Start SQLite og kjør skriptet. Se side 303 i læreboken.
Databasesøk
Lag gjerne en metode som utfører søket og oppdaterer tekstfeltene med data fra spørreresultatet.
Ta gjerne utgangspunkt i eksempelkoden på side 305 i læreboken.
Merk at spørringen i denne oppgaven aldri vil gi flere enn 1 rad. Behandling av spørreresultatet kan dermed gjøres med en valgsetning i stedet for ei løkke. Og sammenlignet med koden på side 305 skal det ikke skrives ut i konsollet, men til tekstfelt.
I en første løsning kan man gjerne koble opp til databasen for hvert enkelt søk (igangsatt fra actionPerformed), men man kan også etablere forbindelsen til databasen ved oppstart og lukke forbindelsen når programmet blir avsluttet. I så fall bør databaseforbindelsen (Connection) deklareres som en objektvariabel.
Lukking av databaseforbindelsen bør i så fall gjøres når brukeren lukker vinduet. Start med å legge til følgende implements-klausul:
implements WindowListener
Ved kompilering vil du få beskjed om hvilke metoder du da må programmere. Alle bortsett fra windowClosing kan bare stå tomme.