List method for null returning jComboBox

Asked

Viewed 113 times

0

Hello! I’m having trouble listing my BD data in a jComboBox. The method I use is as follows:

public void setComboBoxSetorChamado(List<Setor>setores){
    idSetor = new int[setores.size()+1];
    int i = 0;
    //jComboBoxSetorChamado.addItem("");
    idSetor[i] = 0;
    do{
        i++;
        setor = setores.remove(0);
        jComboBoxSetorChamado.addItem(setor.getNome());
        idSetor[i] = setor.getId();
    }while(!setores.isEmpty());
}

I had already used it in other classes and it worked perfectly, but in the class in question returns the following error:

    fev 10, 2015 10:58:27 AM syschamados.view.chamado.ChamadoFormView <init>
    GRAVE: null
    java.lang.NullPointerException
at syschamados.view.chamado.ChamadoFormView.setComboBoxUbsChamado(ChamadoFormView.java:66)
at syschamados.view.chamado.ChamadoFormView.<init>(ChamadoFormView.java:44)
at syschamados.view.chamado.ChamadoView.jButtonNovoChamadoActionPerformed(ChamadoView.java:148)
at syschamados.view.chamado.ChamadoView.access$000(ChamadoView.java:21)
at syschamados.view.chamado.ChamadoView$1.actionPerformed(ChamadoView.java:58)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6525)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6290)
at java.awt.Container.processEvent(Container.java:2234)
at java.awt.Component.dispatchEventImpl(Component.java:4881)
at java.awt.Container.dispatchEventImpl(Container.java:2292)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
at java.awt.Container.dispatchEventImpl(Container.java:2278)
at java.awt.Window.dispatchEventImpl(Window.java:2739)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746)
at java.awt.EventQueue.access$400(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:697)
at java.awt.EventQueue$3.run(EventQueue.java:691)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:719)
at java.awt.EventQueue$4.run(EventQueue.java:717)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:716)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

The line that is the bug is already highlighted. What can I do in this case?

  • Already highlighted? But there’s not even the method the console points to...

  • The method that should be shown is setComboBoxUbsChamado() and if possible, mark line 66 with comments, not symbols >, as it affects the content of the final text.

  • @Gustavocinque in the case of setComboBoxUbsChamado() on the console is a test I had done previously, but the function it performs is virtually the same as the setComboBoxSetorChamado() that is in the code, changing only the entities.

  • Hm... okay, if so. In the case, he must not be finding the instance of ComboBox, tried to give a new JComboBox, or whatever entity it is, before using its methods?

  • I tried that now and the console errors no longer appeared, but what I need (entity listing) did not work. I did two tests: one before the do while (System.out.println("teste cbox1: "+jComboBoxSetorChamado.getSelectedItem());) and another during (System.out.println("teste cbox2: "+jComboBoxSetorChamado.getItemAt(1));). The two returned results, and yet the jComboBox in the form shows nothing.

2 answers

1

Try creating a list of Strings with the values you want and then add in the constructor of JComboBox? See example below:

    List<String> list = new ArrayList<String>();
    list.add("Selecione");
    for (Setor setor : setores) {
        list.add(setor.getNome());
    }
    setorCB = new JComboBox(list.toArray());

To continue accessing the values you want, you can continue with the list of sectors and use a get(position).

  • Don’t you have to initialize this Arraylist? I put it this way in the constructor and it didn’t work (but it also doesn’t give any error in the console).

0

the problem has already been solved. It was in the form components declaration:

public ChamadoFormView(java.awt.Frame parent, boolean modal) {
    super(parent, modal);
    //initComponents();
    UbsController ubsController = new UbsController();
    SetorController setorController = new SetorController();
    TecnicoController tecnicoController = new TecnicoController();
    try{
        setComboBoxUbsChamado(ubsController.list());
        setComboBoxTecnicoChamado(tecnicoController.list());
        setComboBoxSetorChamado(setorController.list());
    }catch(Exception ex){
        Logger.getLogger(ChamadoView.class.getName()).log(Level.SEVERE, null, ex);
    }
}

In the case, the initComponents() was after the try, and that’s what caused the null of jComboBox Now it’s working smoothly.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.