/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package mobileapplication1; import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Form; import javax.microedition.lcdui.StringItem; import javax.microedition.lcdui.TextField; import javax.microedition.lcdui.Ticker; import javax.microedition.midlet.*; public class Midlet extends MIDlet implements CommandListener { private final Form okno; private final TextField tfa; private final TextField tfb; private final TextField tfc; private final Command cmdWylicz; private final Command cmdKoniec; private final Ticker komunikat; private final StringItem tfDelta; private final StringItem tfWynik; public Midlet() { okno = new Form("Wyliczanie pierwiastka"); tfa = new TextField("Podaj a:", "1", 6, TextField.ANY); tfb = new TextField("Podaj b:", "1", 6, TextField.ANY); tfc = new TextField("Podaj c:", "1", 6, TextField.ANY); tfDelta = new StringItem("Delta:", ""); tfWynik = new StringItem("Wynik:", ""); komunikat = new Ticker("Wyliczanie równań kwadratowych"); cmdWylicz = new Command("Wylicz", Command.ITEM, 0); cmdKoniec = new Command("Koniec", Command.ITEM, 1); okno.append(tfa); okno.append(tfb); okno.append(tfc); okno.append(tfDelta); okno.append(tfWynik); okno.setTicker(komunikat); } public void startApp() { Display ekran = Display.getDisplay(this); ekran.setCurrent(okno); okno.addCommand(cmdWylicz); okno.addCommand(cmdKoniec); okno.setCommandListener(this); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void commandAction(Command cmd, Displayable d) { if (cmd == cmdWylicz) { try { double a = Double.parseDouble(tfa.getString()); double b = Double.parseDouble(tfb.getString()); double c = Double.parseDouble(tfc.getString()); double x1; double x2; double pierwiastek; if (a == 0.0) { tfDelta.setText("Równanie nie jest kwadratowe"); return; } double delta = (b * b) - (4.0 * a * c); tfDelta.setText(delta + ""); if (delta > 0) { pierwiastek = Math.sqrt(delta); x1 = ((-b) - pierwiastek) / (2.0 * a); x2 = ((-b) + pierwiastek) / (2.0 * a); tfWynik.setText("X1=" + x1 + "; X2=" + x2); } else if (delta == 0) { x1 = (-b) / (2.0 * a); tfWynik.setText("X=" + x1); } else { tfWynik.setText("Brak rozwiązania"); } } catch (NumberFormatException exc) { tfDelta.setText("NumberFormatExc"); } catch (IllegalArgumentException exi) { tfDelta.setText("IllegalArgExc"); } } if (cmd == cmdKoniec) { destroyApp(false); notifyDestroyed(); } } }