Bom dia pessoal,
Esta é minha primeira participação oficial na comunidade… :-o
indo direto ao assunto, to com problemas com um método que criei para tratar um stringbuffer. Ele é atualizado ao selecionar ou deselecionar um grupo de checkboxes. Ao selecionar, o stringbuffer recebe o valor da ActionCommand da checkbox, e ao deselecionar, o valor deve ser deletado. Até aqui tudo bem, o método funciona e talz… mas tá resultando em exceções quando deseleciono.
Segue o método:
private StringBuffer ModifyStringBuffered(StringBuffer buff, String buff_substring)
{
int inipos = buff.indexOf(buff_substring);
int endpos = buff.indexOf(";");
buff = buff.delete(inipos,endpos);
while(buff.indexOf(";") == 0)
buff = buff.deleteCharAt(0);
return buff;
}
e as exceções:
Exception in thread "AWT-EventQueue-0" java.lang.StringIndexOutOfBoundsException
at java.lang.AbstractStringBuilder.delete(AbstractStringBuilder.java:705)
at java.lang.StringBuffer.delete(StringBuffer.java:374)
at org.simsge.cadastro.alunos.ModifyStringBuffered(alunos.java:1062)
at org.simsge.cadastro.alunos.itemStateChanged(alunos.java:1025)
at javax.swing.AbstractButton.fireItemStateChanged(AbstractButton.java:1877)
at javax.swing.AbstractButton$Handler.itemStateChanged(AbstractButton.java:2176)
at javax.swing.DefaultButtonModel.fireItemStateChanged(DefaultButtonModel.java:477)
at javax.swing.JToggleButton$ToggleButtonModel.setSelected(JToggleButton.java:233)
at javax.swing.JToggleButton$ToggleButtonModel.setPressed(JToggleButton.java:250)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:231)
at java.awt.Component.processMouseEvent(Component.java:5517)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3135)
at java.awt.Component.processEvent(Component.java:5282)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3984)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3819)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1791)
at java.awt.Component.dispatchEvent(Component.java:3819)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
To sem noção. Há dias que to lutando com isso… ainda não encontrei uma solução adequada. Qualquer dica será bem vinda.