import java.awt.*; import java.awt.event.*; class PnrKomponent extends TextField implements ActionListener { String datum, nummer; PnrKomponent () { super(10); addActionListener(this); } public void actionPerformed (ActionEvent e) { if (pnrOK(getText())) setText(datum + '-' + nummer); else setText("Fel nummer"); } /* pnrOK gör INTE ALLS en fullständig kontroll av personnumret. Den kollar inte att det är ett korrekt datum, den kollar inte att inmatade tecken är siffror. Antalet inmatade tecken och checksiffran är de enda kontrollerna. */ boolean pnrOK (String pnr) { if (pnr.length() <10) return false; boolean harStreck = pnr.charAt(6)=='-'; if (harStreck && pnr.length()<11) return false; datum = pnr.substring(0,6); if (harStreck) nummer = pnr.substring(7,11); else nummer = pnr.substring(6,10); int siffsum = checksum(datum) + checksum(nummer); return siffsum % 10 == 0; } int checksum (String s) { int siffsum = 0; int fak = 2; for (int i=0; i