Remover item de um jlist

JList lista = new JList(); lista.setModel(new DefaultListModel()); int selecionados = jlServeAberta.getSelectedIndex(); if(selecionados > -1){ ((DefaultListModel)lista.getModel()).remove(jlServeAberta.getSelectedIndex()); }

fiz esse comando para remover um item de um jlist,mas da o seguinte erro:

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 19 >= 0 at java.util.Vector.elementAt(Vector.java:427) at javax.swing.DefaultListModel.remove(DefaultListModel.java:476) at gui.frameTelaPrincipal.jbFinalizarVendaActionPerformed(frameTelaPrincipal.java:921) at gui.frameTelaPrincipal.access$400(frameTelaPrincipal.java:46) at gui.frameTelaPrincipal$6.actionPerformed(frameTelaPrincipal.java:265) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.Component.processMouseEvent(Component.java:6263) at javax.swing.JComponent.processMouseEvent(JComponent.java:3267) at java.awt.Component.processEvent(Component.java:6028) at java.awt.Container.processEvent(Container.java:2041) at java.awt.Component.dispatchEventImpl(Component.java:4630) at java.awt.Container.dispatchEventImpl(Container.java:2099) at java.awt.Component.dispatchEvent(Component.java:4460) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168) at java.awt.Container.dispatchEventImpl(Container.java:2085) at java.awt.Window.dispatchEventImpl(Window.java:2475) at java.awt.Component.dispatchEvent(Component.java:4460) at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

alguem sabe o que é??

desde ja agradeço

Bom sem o resto do codigo é complicado mas na hora que voce está populando o Jlist ele está tentando alocar um tamanho maior que a capacidade do mesmo, sempre que se ultrapassa o tamanho de um vetor ou List ou qualquer dessas estruturas se recebe essa exceção


espero ter ajudado

Esse código é maluco. Logo no início vc define um model novinho (e vazio) sua lista (também nova):

JList lista = new JList(); lista.setModel(new DefaultListModel());

Depois, vc pega uma outra lista nada a ver, e obtém o índice selecionado:

int selecionados = jlServeAberta.getSelectedIndex();

E então, tenta remover esse índice, de outra lista, da lista que você mal acabou de criar.

if(selecionados > -1){ ((DefaultListModel)lista.getModel()).remove(jlServeAberta.getSelectedIndex()); }

Como você espera que um remove por índice funcione, numa lista que você recém criou?