swing - Exception in thread "AWT-EventQueue-0" java.lang.StringIndexOutOfBoundsException: String index out of range: 8 -


i have several jcomboboxes , jtextfields on jpanel.

selected , typed values saving in text file.

printwriter outfile = new printwriter(new bufferedwriter(new filewriter... outfile.write(jcb1.getselecteditem().tostring().substring(1, 8)); outfile.write(jtextfield1.gettext()); 

but when allow jcomboboxes empty, cannot save empty value of jcb1 , getting error:

exception in thread "awt-eventqueue-0" java.lang.stringindexoutofboundsexception: string index out of range: 8     @ java.lang.string.substring(string.java:1907)     @ main.panel.saveactionperformed(panel.java:5929)     @ main.panel.access$200(panel.java:36)     @ main.panel$3.actionperformed(panel.java:5713)     @ javax.swing.abstractbutton.fireactionperformed(abstractbutton.java:2018)     @ javax.swing.abstractbutton$handler.actionperformed(abstractbutton.java:2341)     @ javax.swing.defaultbuttonmodel.fireactionperformed(defaultbuttonmodel.java:402)     @ javax.swing.defaultbuttonmodel.setpressed(defaultbuttonmodel.java:259)     @ javax.swing.plaf.basic.basicbuttonlistener.mousereleased(basicbuttonlistener.java:252)     @ java.awt.component.processmouseevent(component.java:6516)     @ javax.swing.jcomponent.processmouseevent(jcomponent.java:3320)     @ java.awt.component.processevent(component.java:6281)     @ java.awt.container.processevent(container.java:2229)     @ java.awt.component.dispatcheventimpl(component.java:4872)     @ java.awt.container.dispatcheventimpl(container.java:2287)     @ java.awt.component.dispatchevent(component.java:4698)     @ java.awt.lightweightdispatcher.retargetmouseevent(container.java:4832)     @ java.awt.lightweightdispatcher.processmouseevent(container.java:4492)     @ java.awt.lightweightdispatcher.dispatchevent(container.java:4422)     @ java.awt.container.dispatcheventimpl(container.java:2273)     @ java.awt.window.dispatcheventimpl(window.java:2719)     @ java.awt.component.dispatchevent(component.java:4698)     @ java.awt.eventqueue.dispatcheventimpl(eventqueue.java:735)     @ java.awt.eventqueue.access$200(eventqueue.java:103)     @ java.awt.eventqueue$3.run(eventqueue.java:694)     @ java.awt.eventqueue$3.run(eventqueue.java:692)     @ java.security.accesscontroller.doprivileged(native method)     @ java.security.protectiondomain$1.dointersectionprivilege(protectiondomain.java:76)     @ java.security.protectiondomain$1.dointersectionprivilege(protectiondomain.java:87)     @ java.awt.eventqueue$4.run(eventqueue.java:708)     @ java.awt.eventqueue$4.run(eventqueue.java:706)     @ java.security.accesscontroller.doprivileged(native method)     @ java.security.protectiondomain$1.dointersectionprivilege(protectiondomain.java:76)     @ java.awt.eventqueue.dispatchevent(eventqueue.java:705)     @ java.awt.eventdispatchthread.pumponeeventforfilters(eventdispatchthread.java:242)     @ java.awt.eventdispatchthread.pumpeventsforfilter(eventdispatchthread.java:161)     @ java.awt.eventdispatchthread.pumpeventsforhierarchy(eventdispatchthread.java:150)     @ java.awt.eventdispatchthread.pumpevents(eventdispatchthread.java:146)     @ java.awt.eventdispatchthread.pumpevents(eventdispatchthread.java:138)     @ java.awt.eventdispatchthread.run(eventdispatchthread.java:91) 

i want save empty value of jcombobox, due substring getting error. don't know how avoid problem. appreciated.

before taking substring, check string length.

string test = "test12"; string subtest; //long version if(test.length() > 8){       subtest = test.substring(1, 8); } else {       subtest = test.substring(1, test.length()); } //short version subtest = test.substring(1, test.length() > 8 ? 8 : test.length()); system.out.println(subtest); //output: est12 

Comments

Popular posts from this blog

IF statement in MySQL trigger -

c++ - What does MSC in "// appease MSC" comments mean? -

javascript - Blogger related post gadget image Resize s72-c [ Need Expert Help ] -