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:

 1) Agentes_colega.removeAllItems();
     2)   if(!(agentecolega.isEmpty())) {  Este é o mesmo vetor que inseri os dados acima...
              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

Responder a