» Poradna » Programy

J2me chyba pri vytváraní instancie vlastnej triedy datum

 |   |  Microsoft Windows 7 Opera 9.80

som zaciatocnik a snazim sa vytvorit aplikaciu na vypis poctu dni od narodenia v java - micro edition.Mám problém s vytvorením instancie vlastnej triedy datum.Annotation: An unexpected internal exception occured in debug interface layer. Please submit this to your JVM vendor.Annotation: An unexpected internal exception occured in debug interface layer. Please submit this to your JVM vendor.An unexpected internal exception occured in debug interface layer. Please submit this to your JVM vendor.An unexpected internal exception occured in debug interface layer. Please submit this to your JVM vendor.Caused: com.sun.jdi.InternalException: Unexpected JDWP Error: 21 at com.sun.tools.jdi.JDWPException.toJDIException(JDWPException.java:65) at com.sun.tools.jdi.ReferenceTypeImpl.getInterfaces(ReferenceTypeImpl.java:572) at com.sun.tools.jdi.ClassTypeImpl.interfaces(ClassTypeImpl.java:70) at com.sun.tools.jdi.ClassTypeImpl.addVisibleMethods(ClassTypeImpl.java:392) at com.sun.tools.jdi.ReferenceTypeImpl.visibleMethods(ReferenceTypeImpl.java:526) at com.sun.tools.jdi.ClassTypeImpl.concreteMethodByName(ClassTypeImpl.java:302)[catch] at org.netbeans.modules.debugger.jpda.jdi.ClassTypeWrapper.concreteMethodByName(ClassTypeWrapper.java:156) at org.netbeans.modules.debugger.jpda.models.AbstractObjectVariable.getToStringValue(AbstractObjectVariable.java:483) at org.netbeans.modules.debugger.jpda.models.AbstractObjectVariable.getToStringValue(AbstractObjectVariable.java:445) at org.netbeans.modules.debugger.jpda.models.AbstractObjectVariable.getToStringValue(AbstractObjectVariable.java:411) at org.netbeans.modules.debugger.jpda.models.WatchesModel$JPDAWatchEvaluating.getToStringValue(WatchesModel.java:379) at org.netbeans.modules.debugger.jpda.ui.models.WatchesNodeModelFilter.getShortDescriptionSynch(WatchesNodeModelFilter.java:133) at org.netbeans.modules.debugger.jpda.ui.models.VariablesNodeModel$1.run(VariablesNodeModel.java:263) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1452) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2032)KOD:package Datum;import java.util.Calendar;import java.util.Date;import javax.microedition.lcdui.*;import javax.microedition.midlet.MIDlet;import javax.microedition.midlet.MIDletStateChangeException; public class Midlet extends MIDlet implements CommandListener { Display disp; Form setup; Form result; TextField rok ; TextField mesiac ; TextField den ; Command vypocet; Command koniec; Command spat; StringItem pozdrav; StringItem dnesny_datum; StringItem vysledok; StringItem ss; datum Datum; datum teraz; datum narod; datum de; Date d_date; static final int[] dni= {31,28,31,30,31,30,31,31,30,31,30,31}; private class datum { int den; int mesiac; int rok; public datum() { } public datum(int d, int m, int r) { den = d; mesiac = m; rok = r; } public datum(String d, String m, String r) {den = Integer.parseInt(d); mesiac = Integer.parseInt(m); rok = Integer.parseInt(r); } } public datum d_datum() { Calendar calendar = Calendar.getInstance(); calendar.setTime(d_date); datum vystup; int ye = calendar.get(Calendar.YEAR); int mo = calendar.get(Calendar.MONTH); int da = calendar.get(Calendar.DAY_OF_MONTH); vystup = new datum (ye,mo,da); return vystup; } public Midlet() { d_date = new Date(); pozdrav = new StringItem("Zadaj datum narodenia: ", ""); vypocet = new Command("Vypocitaj!", Command.SCREEN, 2); spat = new Command("Spat", Command.SCREEN, 3); koniec = new Command("Zavri", Command.SCREEN, 1); rok = new TextField("Rok:", "", 4, TextField.NUMERIC); mesiac = new TextField("Mesiac:", "", 2, TextField.NUMERIC); den = new TextField("Den:", "", 20, TextField.NUMERIC); datum pomdat = new datum(); int d = d_datum().den; int m = d_datum().mesiac; int r = d_datum().rok; setup = new Form("Zadaj datum narodenia"); dnesny_datum = new StringItem("", "Dnes je:"+Integer.toString(d)+"."+Integer.toString(m)+"."+Integer.toString(r)); setup.append(dnesny_datum); setup.append(pozdrav); setup.append(den); setup.append(mesiac); setup.append(rok); setup.addCommand(vypocet); setup.addCommand(koniec); result = new Form("VYSLEDOK"); } public void startApp() { disp = Display.getDisplay(this); setup.setCommandListener(this); disp.setCurrent(setup); } public void commandAction(Command c, Displayable d) { de = new datum("22","8","1994"); //testovaci datum - tuto nastane chyba, pri debugovani sa priradi chyb hlaska if (c== spat) { disp.setCurrent(setup); } if(c == koniec) { notifyDestroyed(); } if(c == vypocet) { ss = new StringItem("",rok.getString()+mesiac.getString()+rok.getString()); if (validate (de)) { String vysledok = vypocitaj (Integer.parseInt(rok.getString()),Integer.parseInt(mesiac.getString()),Integer.parseInt(den.getString())); result.append(vysledok); result.addCommand(koniec); result.setCommandListener(this); disp.setCurrent(result); } else {String vysledok = "Chyba zadania datumu"; result.append(vysledok); result.addCommand(spat); result.addCommand(koniec); result.setCommandListener(this); disp.setCurrent(result); } }} private boolean priestupny(int rok) { if ((( rok % 400 == 0) || (rok % 100 != 0)) && (rok % 4 == 0) ) { return true; } else { return false; } } private boolean validate(datum dat) { if ((dat.den >= 1) && (dat.den <=31) && (dat.mesiac >= 1) && (dat.mesiac <=12) && (dat.rok >=1) && (dat.rok < 2012) && (dat.mesiac <= dni[dat.mesiac])) { return true; } else { return false; } } private String vypocitaj(int rok, int mesiac, int den) { String vysledok; int rokdni = 0; int mesdni = 0; datum narod; narod = new datum (rok, mesiac, den); teraz = d_datum(); for (int i = teraz.rok-1; i <= narod.rok+1; i--) { if (priestupny (i)) {rokdni+= 366; } else {rokdni+= 365;} } if ((priestupny (narod.rok)) && (narod.mesiac<=3)) { mesdni++; } if ((priestupny (teraz.rok)) &&(teraz.mesiac>=1)) { mesdni++; } for (int i = narod.mesiac+1;i<= 12; i++) {mesdni += dni[i];} for (int i = 1; i<= teraz.mesiac-1; i++) {mesdni += dni[i];} int value = rokdni+mesdni+teraz.den+ dni[narod.mesiac]-narod.den; vysledok = ("Uz" + value+ "dni ste na tomto svete"); return vysledok; } protected void destroyApp(boolean arg0) throws MIDletStateChangeException { // TODO Auto-generated method stub } protected void pauseApp() { // TODO Auto-generated method stub }}Pomôže mi niekto s tým prosím?


Související témata: 10, Datum, Public, Return, Return false, Calendar, Catch




Určitě si přečtěte

Praktické vychytávky, které si chcete doinstalovat do Windows

Praktické vychytávky, které si chcete doinstalovat do Windows

** Pokud vás nudí vzhled nabídky Start, snadno jej můžete změnit. ** Stejně tak existují programy na přidání záložek do programů. ** Spokojit se ani nemusíte se základním ovládáním hlasitosti.

Vladislav Kluska | 45

Intel vs. AMD: souboj vícejádrových procesorů začal. AMD zesměšňuje Intel neuvěřitelně nízkou cenou

Intel vs. AMD: souboj vícejádrových procesorů začal. AMD zesměšňuje Intel neuvěřitelně nízkou cenou

** AMD představilo nové levné procesory až s 32jádry ** AMD útočí na serverový i domácí trh Intelu ** Intel nemá konkurenceschopnou nabídku

Karel Javůrek | 85

Jak a proč používat alternativní DNS: Zrychlí internet a odblokuje weby

Jak a proč používat alternativní DNS: Zrychlí internet a odblokuje weby

** Alternativní DNS servery mohou zpříjemnit surfování na internetu ** Existuje několik ověřených alternativ, nejen známé DNS od Googlu ** Alternativní DNS však mají i své nevýhody, pozor na ně

Petr Březina | 33

Jak funguje největší akumulátor v Česku: podívejte se do elektrárny Dlouhé Stráně

Jak funguje největší akumulátor v Česku: podívejte se do elektrárny Dlouhé Stráně

** Přečerpávací vodní elektrárna Dlouhé stráně je obdivuhodné technické dílo ** Stejná turbína vyrábí elektřinu i tlačí vodu zpět do horního jezera ** Strojovna elektrárny je zabudována v podzemí

David Polesný | 34

Přichází revoluce v oblasti deodorantů!

Přichází revoluce v oblasti deodorantů!

** Britští vědci odhalili uzlový bod procesů, kterými vzniká nejpronikavější složka lidského tělesného pachu ** Nové generaci deodorantů by mohl dodat na síle cílený zásah do života malé skupinky kožních bakterií ** Podle některých vědců by to ale znamenalo zpřetrhat pouta mezi člověkem a mikrobem

Jaroslav Petr | 34

Cardano: kryptoměna nové generace, která se netěží, ale razí

Cardano: kryptoměna nové generace, která se netěží, ale razí

** Cardano je unikátní kryptoměna, která díky svým vlastnostem a schopnostem přitahuje pozornost ** Od Bitcoinu se zásadně liší ** Jejím smyslem není jen „koupit a prodat“, má pozoruhodné technologické možnosti

Martin Miksa | 29


Jízdní řády Bileto
Aktuální číslo časopisu Computer

Megatest: 13 grafických karet

Srovnání 7 dokovacích stanic s USB-C

Jak na perfektní noční fotografie

Kvalitní zdroje informací pro sebevzdělávání