Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: gabriel1995 en 26 Marzo 2018, 17:39 pm



Título: Recoger valores de JCheckBox
Publicado por: gabriel1995 en 26 Marzo 2018, 17:39 pm
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:
(https://i.imgur.com/5SMzbM6.png)


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


Título: Re: Recoger valores de JCheckBox
Publicado por: srWhiteSkull en 27 Marzo 2018, 23:54 pm
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.


Título: Re: Recoger valores de JCheckBox
Publicado por: gabriel1995 en 15 Abril 2018, 11:05 am
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