Swing proporciona una amplia variedad de componentes listos para usar. Todos heredan de JComponent y comparten propiedades comunes: tamaño, color, fuente, borde, tooltip y estado habilitado/visible.
Propiedades comunes a todos los componentes
JButton boton = new JButton("Aceptar");
boton.setEnabled(false); // deshabilitar
boton.setVisible(false); // ocultar
boton.setToolTipText("Haz clic para confirmar"); // tooltip
boton.setFont(new Font("SansSerif", Font.PLAIN, 14));
boton.setForeground(Color.WHITE);
boton.setBackground(new Color(0, 120, 215));
boton.setBorder(BorderFactory.createEmptyBorder(8, 16, 8, 16));
boton.setPreferredSize(new Dimension(120, 36));
JLabel
JLabel etiqueta = new JLabel("Nombre:");
etiqueta.setDisplayedMnemonic(KeyEvent.VK_N); // Alt+N enfocará el componente asociado
etiqueta.setLabelFor(campoTexto);
// Label con imagen
JLabel icono = new JLabel(new ImageIcon("logo.png"));
icono.setHorizontalAlignment(SwingConstants.CENTER);
JTextField, JPasswordField y JTextArea
JTextField campo = new JTextField(20); // columnas de ancho
campo.setText("Valor inicial");
campo.setEditable(false); // solo lectura
String valor = campo.getText();
JPasswordField password = new JPasswordField(20);
char[] pass = password.getPassword(); // más seguro que getText()
Arrays.fill(pass, '0'); // limpiar después de usar
JTextArea area = new JTextArea(10, 40); // filas, columnas
area.setLineWrap(true);
area.setWrapStyleWord(true);
JScrollPane scroll = new JScrollPane(area); // siempre envolver en JScrollPane
JButton, JCheckBox, JRadioButton
JButton boton = new JButton("Guardar");
boton.setMnemonic(KeyEvent.VK_G); // Alt+G activa el botón
JCheckBox check = new JCheckBox("Recordarme", true); // checked por defecto
boolean marcado = check.isSelected();
// RadioButtons en grupo (solo uno activo a la vez)
ButtonGroup grupo = new ButtonGroup();
JRadioButton rb1 = new JRadioButton("Opción 1", true);
JRadioButton rb2 = new JRadioButton("Opción 2");
grupo.add(rb1);
grupo.add(rb2);
JComboBox y JList
// JComboBox (desplegable)
String[] opciones = {"Pequeño", "Mediano", "Grande"};
JComboBox<String> combo = new JComboBox<>(opciones);
combo.setSelectedIndex(1);
String seleccion = (String) combo.getSelectedItem();
// JComboBox editable
combo.setEditable(true);
// JList (lista de selección)
DefaultListModel<String> modelo = new DefaultListModel<>();
modelo.addElement("Java"); modelo.addElement("Python");
JList<String> lista = new JList<>(modelo);
lista.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
JScrollPane scrollLista = new JScrollPane(lista);
JSpinner, JSlider y JProgressBar
JSpinner spinner = new JSpinner(new SpinnerNumberModel(5, 1, 100, 1)); int valor = (int) spinner.getValue(); JSlider slider = new JSlider(0, 100, 50); slider.setMajorTickSpacing(25); slider.setPaintTicks(true); slider.setPaintLabels(true); JProgressBar barra = new JProgressBar(0, 100); barra.setValue(75); barra.setStringPainted(true); // muestra "75%" // Modo indeterminado (cuando no se conoce el progreso) barra.setIndeterminate(true);
