Caros amigos da lista
Apesar da ajuda do Nil Inacio Santos,a qual agradeço muito, ainda não consegui resolver o meu problema de JComboBox dinâmico.
Estou mandando pedaços do meu código para ver se alguém pode me ajudar...
tenho o seguinte vetor:
Vector agentecolega = new Vector(1);
agentecolega.addElement("maria");
agentecolega.addElement("teresa");
Isto é para a inclusão dos dados no JComboBox();
Isto para garantir que o JComboBox() nunca ficará vazio...
if(agentecolega.isEmpty()) {
agentecolega.addElement("Sem Colaborador");
}
JComboBox Agentes_colega = new JComboBox(); for(int i=0; i<agentecolega.size(); i++) { Agentes_colega.addItem((String) agentecolega.get(i)); } Agentes_colega.setEditable(true); Agentes_colega.setSelectedItem((String) agentecolega.get(0)); A_IpSuperior.setText(""); A_Irmao.setText("");Agentes_colega.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JComboBox cb = (JComboBox)e.getSource(); String selec = (String)cb.getSelectedItem(); if(!(selec.equals("Sem Colaborador"))) { A_Irmao.setText(selec); A_IpIrmao.setText(Ipagente(selec)); } } });
Depois de processado algumas outras rotinas, as quais não
alteram o JComboBox() é preciso remover os itens do mesmo e inserir
novos itens...
Já tentei dois comandos:
2) if(!(agentecolega.isEmpty())) { Este é o mesmo vetor que inseri os dados acima...1) Agentes_colega.removeAllItems();
for(int i=0; i<agentecolega.size(); i++) {
Agentes_colega.removeItem((String) agentecolega.get(i));
}
}
Agentes_colega.revalidate();
Um novo vetor é criado e novamente é inserido no componente
for(int i=0; i<agentecolega.size(); i++) {
Agentes_colega.addItem((String)
agentecolega.get(i));
}
Agentes_colega.revalidate();
Entretanto, hora funciona o hora da erro de ponteiro na hora de excluir
os dados...
A primeira vez, quando o JComboBox() é criado sempre funciona...
porém nas outras vez que é preciso fazer a remoção
dos dados do componente, hora sim, hora não dá os seguintes
erros:.
===> Este dá quando tento remover com o item 1)
Exception occurred during event dispatching:
java.lang.IndexOutOfBoundsException: -1
at java.util.BitSet.get(Compiled
Code)
at javax.swing.DefaultListSelectionModel.clear(Compiled
Code)
at javax.swing.DefaultListSelectionModel.setState(DefaultListSelectionMo
del.java:405)
at javax.swing.DefaultListSelectionModel.removeIndexInterval(Compiled
Co
de)
at javax.swing.plaf.basic.BasicListUI$ListDataHandler.intervalRemoved(Ba
sicListUI.java:1071)
at javax.swing.AbstractListModel.fireIntervalRemoved(Compiled
Code)
at javax.swing.DefaultComboBoxModel.removeAllElements(DefaultComboBoxMod
el.java:167)
at javax.swing.JComboBox.removeAllItems(Compiled
Code)
at jess.examples.meu.DadosAgentes$1.actionPerformed(Compiled
Code)
at javax.swing.JComboBox.fireActionEvent(Compiled
Code)
at javax.swing.JComboBox.selectedItemChanged(JComboBox.java:660)
at javax.swing.JComboBox.contentsChanged(Compiled
Code)
===>Este na segunda opção 2) sempre na remoção do segundo item...
Exception occurred during event dispatching:
java.lang.NullPointerException:
at jess.examples.meu.DadosAgentes$2.actionPerformed(DadosAgentes.java:35
5)
at javax.swing.JComboBox.fireActionEvent(Compiled
Code)
at javax.swing.JComboBox.selectedItemChanged(JComboBox.java:660)
at javax.swing.JComboBox.contentsChanged(Compiled
Code)
at javax.
Agradeço muito a ajuda de voces...
Se existir um jeito mais fácil de fazer isto eu agradeço... Eu quero apenas criar um JComboBox() inicial, e durante o processamento do programa alterar seu valor de acordo com a escolha feita pelo o usuário...
Grata
Vera
ITA-Instituto Tecnológico de Aeronáutica
