» 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, Catch



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


Jak lidstvo zkrotilo páru: První pokusy o sestrojení parního stroje

Jak lidstvo zkrotilo páru: První pokusy o sestrojení parního stroje

** Zapřáhnout páru do služeb lidstva, to je myšlenka stará dvě tisíciletí ** Je opravdovým paradoxem, že spoutání páry se lidstvu povedlo v jistém směru ještě dříve, než vody a větru ** Cesta k prvnímu opravdovému parnímu stroji však rozhodně nebyla jednoduchá

16.  2.  2018 | Pavel Tronner | 10

Surface Laptop: Takto má vypadat notebook. Tedy alespoň podle Microsoftu

Surface Laptop: Takto má vypadat notebook. Tedy alespoň podle Microsoftu

** Microsoft jej představil loni na jaře ** Jeho hlavní zbraní je Windows Hello a stylus ** A zároveň chce být stejně stylový jako macbooky

18.  2.  2018 | Jakub Čížek | 53

Nejlepší podvodní fotky: Podívejte se, co dokáže foťák pod vodou

Nejlepší podvodní fotky: Podívejte se, co dokáže foťák pod vodou

** Soutěž Underwater Photographer of the Year zveřejnila vítězné snímky letošního ročníku ** Podívejte se na finálové fotografie ** Podvodní svět je úchvatná podívaná

17.  2.  2018 | Vojtěch Malý | 4


Aktuální číslo časopisu Computer

Jak vznikají filmové efekty

Test ATX skříní a externích disků

Znáte svá práva při reklamaci?

Průvodce první instalací NASu