Agregar array de checkbox a JDialog

Iniciado por leogtz, 14 Abril 2011, 00:52 AM

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

leogtz

Hola a todos, estoy teniendo un problema, desde un JFrame, abro un JDialog, y trato de agregarle algunos JCheckBox, pero siempre se queda con el último.

Lo que intento es agregar múltiples JcheckBox a un JDialog, pero que todos se puedan seleccionar, no solo uno.

¿Alguien me puede ayudar?

¿cómo puedo seleccionar varios jcheckbox?
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

1mpuls0

#1
Hola qué tal.

Veo que nadie contestaba asi que me puse a trabajar un par de horas, pensé que sería mas sencillo o será que ya estoy olvidando xD

Aquí el código.

Código (java) [Seleccionar]

/**
* @(#)PruebaJCheckBox .java
*
*
* @author 1mpuls0
* @version 1.00 2011/4/16
*/

package foro;

import javax.swing.JLabel;
import javax.swing.WindowConstants;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.BoxLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import java.awt.BorderLayout;
import java.awt.event.ItemListener;
import java.awt.event.ItemEvent;
import javax.swing.JDialog;


public class PruebaJCheckBox extends JFrame {

private JCheckBox jCheckBoxs[];
private JButton jbutton;
   
   public static void main(String args[]) {
       new PruebaJCheckBox();
   }

   public PruebaJCheckBox() {
       initComponents();
   }

   private void initComponents() {
    jbutton = new JButton();

       setTitle("jFrame");
       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

       jbutton.setText("get a number");
       jbutton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
int ncb = Integer.parseInt(javax.swing.JOptionPane.showInputDialog(null, "write a number", "number"));
        jCheckBoxs=new JCheckBox[ncb];
new jDialog(PruebaJCheckBox.this, jCheckBoxs);
}
});
       
       getContentPane().add(jbutton, BorderLayout.SOUTH);

       setLocationRelativeTo(null);
       setVisible(true);
       pack();
       
       
   }
}

class jDialog extends JDialog{

public jDialog(JFrame f, JCheckBox jCheckBoxs[] ) {

setTitle("JDialog");
getContentPane().setLayout(new BoxLayout(getContentPane(), BoxLayout.PAGE_AXIS));

/*Ciclo para crear los n JCheckBox y colocarle nombre*/
       for(int i=0; i<jCheckBoxs.length; i++){
        jCheckBoxs[i]=new JCheckBox(""+i);
       }
       
       /*Ciclo para agregar el componente al contenedor(se puede realizar con el anterior)*/
       for(int i=0; i<jCheckBoxs.length; i++){
       getContentPane().add(jCheckBoxs[i]);
       
       }
       
       /*Ciclo para seleccionarlos*/
       for(int i=0; i<jCheckBoxs.length; i++){
       jCheckBoxs[i].setSelected(true);
       }
       
       /*Ciclo para eventos de cada jcheckbox*/
       for(int j=0; j<jCheckBoxs.length; j++){
        jCheckBoxs[j].addItemListener(new ItemListener() {
           public void itemStateChanged(ItemEvent evt) {
            JCheckBox cb = (JCheckBox)evt.getItem();
            System.out.println(cb.getText());
           }
       });
       }
   
   setModal(true);
   pack();
   setLocationRelativeTo(null);
   setVisible(true);
}
}



Saludos.
abc