Substituir itens de um combobox

6 respostas
M

Bom, eu jah tentei de várias formas, mas não consegui, por isso estou pedindo algo meio de mão beijada…

Seguinte, eu quero substituir todos os itens de um JCombobox, por exemplo:

eu tenho nos itens isso:
M&&MASCULINO
F&&FEMININO

e quero que seja substituido por isso:
MASCULINO
FEMININO

e que o M e F vão para um vetor…

como eu faço isso?

6 Respostas

C

String[] str = suaString.split("&&"); Vector v = new Vector(); v.add(str[0]); seuCombo.addItem(str[1]);
Isso resolve.

M

Bem, eu fiz assim:

public class AdmComboBox extends JComboBox{
 ...
    private Vector vetor = new Vector();


...


    public void doSubstituiItens(){
        int contItem = this.getItemCount();
        String[] str = new String[contItem];
        int i;
        
        for ( i = 0; i < contItem; i++){
            str[i] = (String)this.getItemAt(i);
            this.remove(i);
        }
        
        for ( i = 0 ; i < contItem; i++){
            String[] strSubs = str[i].split("&&");
            vetor.add(strSubs[0]);
            this.addItem(strSubs[1]);
        }
        
    }

esta dando o seguinte erro:

<blockquote>Exception in thread “AWT-EventQueue-0” java.lang.NoSuchMethodError: br.com.comps.AdmComboBox.doSubstituiItens()V

at FrmTestes.<init>(FrmTestes.java:23)

at FrmTestes$6.run(FrmTestes.java:363)

at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)

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)

</blockquote>

eu estou chamando o doSunbstituiItens() logo apos o initComponents(); assim:

public class FrmTestes extends javax.swing.JFrame &#123;
    
    /** Creates new form FrmTestes */
    public FrmTestes&#40;&#41; &#123;
        initComponents&#40;&#41;;
        admComboBox1.doSubstituiItens&#40;&#41;;
    &#125;

O q q esta havendo?

C

Primeiramente… vc precisa pegar item a item que esta no seu JComboBox, feito isso ai sim tu precisa usar o Split, vai olhando no debug pra ver o q esta acontecendo. pq olhando assim fica dificil saber ond esta o erro.

M

Poisé fera, eu fiz o debug, mas o erro da antes q apareca o foco no metodo.

E eu peguei item por item:

...
        for &#40; i = 0; i &lt; contItem; i++&#41;&#123;
            str&#91;i&#93; = &#40;String&#41;this.getItemAt&#40;i&#41;;
            this.remove&#40;i&#41;;
        &#125; 
...
M

Consegui resolver…

bem, agora esta dando o seguinte erro:

java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 1

neste trecho:

for &#40; i = 0; i &lt; contItem; i++&#41;&#123;
            str&#91;i&#93; = &#40;String&#41;this.getItemAt&#40;i&#41;;
        &#125;

ps.:eu coloquei 2 posoções em meu array str[].

M

ehehe…naum precisa mais…consegui…

:lol:

Criado 23 de outubro de 2006
Ultima resposta 25 de out. de 2006
Respostas 6
Participantes 2