Realiza un nuevo proyecto.
En el Jframe añade el tipo de layout que desees utilizar, en este caso en el centro he añadido un absolute layout.
En la ventana principal debes añadir lo siguiente:
-
- Un botón “Aceptar” llamado btnAceptar.
- Una etiqueta con borde llamada etiResultado.

Añade también tres cuadros de verificación. Estos cuadros son objetos del tipo JCheckBox.
Debes cambiar el nombre de cada uno de ellos. Se llamarán: ckCoche, ckMoto, ckBici.

El programa debe funcionar de la siguiente forma:
Cuando el usuario pulse aceptar, en la etiqueta aparecerá un mensaje indicando qué vehículos han sido “seleccionados”. Para ello hay que programar el evento actionPerformed del botón Aceptar. En ese evento añada el siguiente código:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
String mensaje="Vehículos elegidos: "; if (ckMoto.isSelected()) { mensaje=mensaje+"Moto "; } if (ckCoche.isSelected()) { mensaje=mensaje+"Coche "; } if (ckBici.isSelected()) { mensaje=mensaje+"Bici "; } lblResultado.setText(mensaje); |
Observa el método isSelected() propio de las casillas de verificación, permiten saber si una casilla está activada o no.
El resultado obtenido debería ser similar a este:

TRUCO: Si tienes problemas con la visibilidad de las variables a lo largo del código del método, puedes reordenarlo para que lea las variables o cambiar los elementos de local a global (por defecto estan en local).

Código final de la clase:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
import java.awt.BorderLayout; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; import javax.swing.JCheckBox; import java.awt.Color; import javax.swing.JButton; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import javax.swing.JLabel; import javax.swing.SwingConstants; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; public class Checkbox extends JFrame { private JPanel contentPane; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { Checkbox frame = new Checkbox(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public Checkbox() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 300); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); JPanel panel = new JPanel(); panel.setBounds(5, 227, 428, 33); panel.setBackground(Color.YELLOW); contentPane.add(panel); JCheckBox ckCoche = new JCheckBox("Coche"); ckCoche.setBounds(180, 109, 91, 33); ckCoche.setHorizontalAlignment(SwingConstants.CENTER); contentPane.add(ckCoche); JCheckBox ckMoto = new JCheckBox("Moto"); ckMoto.setVerticalAlignment(SwingConstants.TOP); ckMoto.setHorizontalAlignment(SwingConstants.TRAILING); ckMoto.setBounds(149, 86, 98, 33); contentPane.add(ckMoto); JCheckBox ckBici = new JCheckBox("Bici"); ckBici.setVerticalAlignment(SwingConstants.TOP); ckBici.setHorizontalAlignment(SwingConstants.TRAILING); ckBici.setBounds(142, 140, 98, 33); contentPane.add(ckBici); JLabel lblResultado = new JLabel("Resultado"); JButton btnAceptar = new JButton("Aceptar"); btnAceptar.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { String mensaje="Vehículos elegidos: "; if (ckMoto.isSelected()) { mensaje=mensaje+"Moto "; } if (ckCoche.isSelected()) { mensaje=mensaje+"Coche "; } if (ckBici.isSelected()) { mensaje=mensaje+"Bici "; } lblResultado.setText(mensaje); } }); panel.add(lblResultado); panel.add(btnAceptar); btnAceptar.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { } }); } } |