Recoger valores de JCheckBox

Iniciado por gabriel1995, 26 Marzo 2018, 17:39 PM

0 Miembros y 1 Visitante están viendo este tema.

gabriel1995

Buenas tardes foro, el tema es que estoy atascado en la construcción de un programa con swing y os vengo a pedir ayuda. El tema esta en que tengo un jframe cuyo objetivo es mostrar los elementos de un arraylist (de objetos) mediante jcheckbox para poder seleccionar el elemento(s) que quiera y al darle  a un botón eliminar dichos elementos seleccionados del arraylist, pero no se como recoger dichos elementos marcados.
aquí dejo una imagen de como se vería:



Aquí dejo el código de la clase:

//creo los jcheckbox
               JPanel tablero = new JPanel();
      tablero.setBorder(null);
      tablero.setBackground(Color.GRAY);
      tablero.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
      tablero.setBounds(10, 54, 364, 160);
      panel.add(tablero);
      JCheckBox box=null;
      //Muestro los perfiles disponibles
      Iterator it=p.contactos.iterator();
      while(it.hasNext()) {
         Contacto aEliminar=(Contacto)it.next();
            box = new JCheckBox(aEliminar.nombre);
            box.setFocusPainted(false);
            box.setBackground(Color.GRAY);
            box.setForeground(Color.LIGHT_GRAY);
            box.setHorizontalAlignment(SwingConstants.CENTER);
            tablero.add(box);
      }

//Boton que al pinchar elimina los elementos seleccionados
           JButton botonAceptar = new JButton("");
      botonAceptar.setIcon(new ImageIcon("E:\\Proyectos\\proyectos-eclipse\\Agenda_Telefonica\\images\\nuevoContacto.png"));
      botonAceptar.setBorder(null);
      botonAceptar.setBackground(new Color(55, 59, 58));
      botonAceptar.setBounds(137, 239, 25, 25);
      panel.add(botonAceptar);
      if(box.isSelected()) {
         Contacto seleccionado=p.buscarContacto(box.getText());
         p.eleminarContacto(seleccionado);
         dispose();
      }


muchas gracias

srWhiteSkull

Mete todos los jcheckbox implicados (los que denominas elementos) en una lista para tenerlos a mano. Todos menos el de eliminar, el de eliminar lo puedes hacer final y público, lo que sea pero que esté fácil de usar en cualquier lado y lo único es que cuando le apliques una acción, al de eliminar, pues recorres la lista de jcheckboxes y busca los seleccionados y los eliminas, que tendría que ser yendo al padre y hacer un remove() usando como argumento la propia referencia del jcheckbox seleccionado.

Yo eso de poner un botón eliminar con un jcheckbox lo veo incorrecto por no decirte absurdo. Usa por favor un botón.

gabriel1995

buenos días y perdón por no contestar antes, como bien me dijiste, metí los checkbox en un arraylist y funciono. muchas gracias

Enviado desde mi LG-D855 mediante Tapatalk