» 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


Tesla chce změnit nákladní dopravu. Její elektrický náklaďák má ohromující parametry

Tesla chce změnit nákladní dopravu. Její elektrický náklaďák má ohromující parametry

** Tesla představila elektrický kamion ** Má obdivuhodný výkon i dojezd ** Prodávat by se měl už za dva roky

17.  11.  2017 | Vojtěch Malý | 237

Dnes je Black Friday: Přehled slev na elektroniku a počítače

Dnes je Black Friday: Přehled slev na elektroniku a počítače

** Začala slevová mánie zvaná Black Friday ** Pozor, ne všechny slevy jsou opravdu výhodné ** Průběžně sledujeme slevové akce v počítačových e-shopech

22.  11.  2017 | David Polesný | 37

Google Mapy mají nový design. Líbí se vám víc než předchozí? Tady je srovnání

Google Mapy mají nový design. Líbí se vám víc než předchozí? Tady je srovnání

** Nový design Google Map přijde na počítače i mobilní telefony. ** Zaměřuje se na zvýraznění konkrétních míst, mapové podklady jsou mnohdy upozaděné. ** Lépe pracuje s chráněnými oblastmi a parky.

20.  11.  2017 | Vladislav Kluska | 30

Microsoftu se invaze na Android daří, jeho launcher aktivně používá přes milion lidí

Microsoftu se invaze na Android daří, jeho launcher aktivně používá přes milion lidí

** Microsoft se zabydluje na platformě Android ** Nedávno představený launcher už používá milion uživatelů ** Je to stále jen zanedbatelný zlomek uživatelů Androidu, ale slibný růst

22.  11.  2017 | Vladislav Kluska | 35


Aktuální číslo časopisu Computer

Otestovali jsme 5 HDR 4K televizorů

Jak natáčet video zrcadlovkou

Vytvořte si chytrou domácnost

Radíme s koupí počítačového zdroje