javame problemy z opercjami arytmetycznymi

0

Mam jakiś dziwny problem z javame. To znaczy nie nie mogą wykonywać mi się operacja "zbyt skompilowane".
Tu podaje przykład kodu gdzie problem występuje..
zaznaczyłem miejsce w programie sprawiające problem.
(wersja CLDC-1.1, MIDP-2.0)



import javax.microedition.lcdui.*;
import javax.microedition.midlet.MIDlet;

public class Midlet extends MIDlet implements CommandListener, ItemCommandListener {    
    private static final Command CMD_PRESS = new Command("Press", Command.SCREEN, 1);
    private static final Command CMD_EXIT = new Command("Exit", Command.EXIT, 1);
    
    double[] arg = new double[1];
    
    private Display display;
    private Form mainForm;
    TextField wynik;
   
    protected void startApp() {
        display = Display.getDisplay(this);
        mainForm = new Form("liczenie całki");
        mainForm.append("podaj dane:");

        StringItem item ;
        
        item = new StringItem("", "licz", Item.BUTTON);
        item.setDefaultCommand(CMD_PRESS);
        item.setItemCommandListener(this);
        mainForm.append(item);

        wynik = new TextField("tu będzie wynik", "", 15, TextField.ANY);
        mainForm.append(wynik);


        mainForm.addCommand(CMD_EXIT);
        mainForm.setCommandListener(this);
        display.setCurrent(mainForm);
    }

    public void commandAction(Command c, Item item) {
        if (c == CMD_PRESS) {
            
           // double dliczba=1.1;// tak działa****************************************
            double dliczba=(1.1+2.2);// w ten sposób nie działa 
            String h = Double.toString(dliczba);
        wynik.setString(h);
        }
    }

    public void commandAction(Command c, Displayable d) {
        destroyApp(false);
        notifyDestroyed();
    }
    protected void destroyApp(boolean unconditional) {
    }
    protected void pauseApp() {
    }


}

EDIT problem rozwiązany..
problem występował ponieważ pole miało limit długości na 15 znaków....

0

A co znaczy, ze nie dziala ? Wywala jakis blad ? Wyjatek ? A moze zamiast ok. 3.3 przypisuje 666 ? ;p

0

no nie działa :) jakiś mi tu wyjątek rzuca..
gdy uruchamiam na telefonie nic się nie dzieje , aplikacja pracuje dalej bez żadnego widocznego efektu.
A gdy uruchamiam w NetBeans( w sprzężonym z nim emulatorze) po naciśnięciu przycisku wywołującego commandAction otrzymuję

TRACE: <at java.lang.IllegalArgumentException>, Exception caught in Display class
java.lang.IllegalArgumentException
        at javax.microedition.lcdui.TextField.setCharsImpl(), bci=79
        at javax.microedition.lcdui.TextField.setString(), bci=37
        at Midlet.commandAction(Midlet.java:43)
        at javax.microedition.lcdui.StringItemLFImpl.uCallKeyPressed(), bci=85
        at javax.microedition.lcdui.FormLFImpl.uCallKeyPressed(), bci=87
        at javax.microedition.lcdui.DisplayableLFImpl.uCallKeyEvent(), bci=146
        at javax.microedition.lcdui.Display$DisplayEventConsumerImpl.handleKeyEvent(), bci=30
        at com.sun.midp.lcdui.DisplayEventListener.process(), bci=277
        at com.sun.midp.events.EventQueue.run(), bci=179
        at java.lang.Thread.run(Thread.java:619)

EDIT
problem występował ponieważ pole miało limit długości na 15 znaków....

1 użytkowników online, w tym zalogowanych: 0, gości: 1