import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import javax.microedition.rms.*; public class Summa extends MIDlet implements CommandListener { private Display displayen; private TextBox textrutan; private Command avslutakommandot, summerakommandot, säkersummakommandot, skapakommandot; public Summa() { textrutan = new TextBox("Textrutan", "", 100, 0); avslutakommandot = new Command("Avsluta", Command.EXIT, 0); summerakommandot = new Command("Summera", Command.SCREEN, 1); säkersummakommandot = new Command("Säker summa", Command.SCREEN, 1); skapakommandot = new Command("Skapa postlagret", Command.SCREEN, 1); textrutan.addCommand(avslutakommandot); textrutan.addCommand(summerakommandot); textrutan.addCommand(säkersummakommandot); textrutan.addCommand(skapakommandot); textrutan.setCommandListener(this); } // Summa public void startApp() { displayen = Display.getDisplay(this); displayen.setCurrent(textrutan); } public void commandAction(Command kommandot, Displayable s) { if (kommandot == avslutakommandot) { destroyApp(false); notifyDestroyed(); } else if (kommandot == summerakommandot) { try { textrutan.insert("Summa = " + summera() + "\n", textrutan.size()); } catch (RecordStoreException e) { textrutan.insert("Summeringen misslyckades.\n", textrutan.size()); } } else if (kommandot == säkersummakommandot) { textrutan.insert("Summa = " + säkersumma() + "\n", textrutan.size()); } else if (kommandot == skapakommandot) { try { skapa(); textrutan.insert("Skapa klart.\n", textrutan.size()); } catch (RecordStoreException e) { textrutan.insert("Skapa misslyckades.\n", textrutan.size()); } } else { // Förhoppningsvis omöjligt } } // commandAction public void destroyApp(boolean unconditional) { } public void pauseApp() { } private int säkersumma() { try { return summera(); } catch (Exception e) { return 0; } } private int summera() throws RecordStoreException { int summan = 0; RecordStore postlagret = RecordStore.openRecordStore("heltalslagret", false); RecordEnumeration re = postlagret.enumerateRecords(null, null, false); while (re.hasNextElement()) { byte[] data = re.nextRecord(); String strängen = new String(data); int talet = Integer.parseInt(strängen); summan += talet; } re.destroy(); postlagret.closeRecordStore(); return summan; } private void skapa() throws RecordStoreException { RecordStore postlagret = RecordStore.openRecordStore("heltalslagret", true); for (int i = 0; i < 100; ++i) { String strängen = "" + i; byte[] data = strängen.getBytes(); postlagret.addRecord(data, 0, data.length); } postlagret.closeRecordStore(); } } // class Summa