Panel con Scroll

   Muchas veces vemos un panel con scroll para seleccionar opciones, como por ejemplo las ventanas del navegador, que al ir bajando o subiendo muestran las distintas áreas del panel. Crear un panel con scroll da un efecto sumamente estético y con un acabado de elegancia (en ciertos casos).

   Hacer esto en java es fácil, simplemente creamos un panel y lo insertamos dentro de un scrollPanel, tomemos como ejemplo la entrada de los ButtonGroup, a esto le agregaremos un scroll para que muestre las barras según el tamaño de la ventana
import javax.swing.*;
import java.awt.event.*;

@SuppressWarnings("deprecation")
public class panelconscroll extends JFrame {
 String radio,check;
 JPanel panel = new JPanel();
 ButtonGroup grupoCheck = new ButtonGroup();
 ButtonGroup grupoRadio = new ButtonGroup();
 JRadioButton radio1 = new JRadioButton("Primera Opcion del Radio");
 JRadioButton radio2 = new JRadioButton("Segunda Opcion del Radio");
 JRadioButton radio3 = new JRadioButton("Tercera Opcion del Radio");
 JCheckBox check1 = new JCheckBox("Primera Opcion del Check");
 JCheckBox check2 = new JCheckBox("Segunda Opcion del Check");
 JCheckBox check3 = new JCheckBox("Tercera Opcion del Check");
 JTextArea mensajes = new JTextArea(30,35);
 JScrollPane scroll1 = new JScrollPane(mensajes);
 JScrollPane scroll2 = new JScrollPane(panel);

 public panelconscroll() {
  super("Los Grupos");
  setLocation(100,100);
  setSize(230,270);
  panel.add(check1);
  panel.add(check2);
  panel.add(check3);
  panel.add(radio1);
  panel.add(radio2);
  panel.add(radio3);
  grupoCheck.add(check1);
  grupoCheck.add(check2);
  grupoCheck.add(check3);
  grupoRadio.add(radio1);
  grupoRadio.add(radio2);
  grupoRadio.add(radio3);
  mensajes.setEditable(false);
  panel.add("South",scroll1);
  check1.addActionListener(new MiEscucha());
  check2.addActionListener(new MiEscucha());
  check3.addActionListener(new MiEscucha());
  radio1.addActionListener(new MiEscucha());
  radio2.addActionListener(new MiEscucha());
  radio3.addActionListener(new MiEscucha());
  add(scroll2);
  show();
  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 }

 class MiEscucha implements ActionListener {
  public void actionPerformed(ActionEvent evt) {
   mensajes.append("Presionado el boton: "+
    evt.getActionCommand()+"\n");
  }
 }

 public static void main(String[] arg) {
  JOptionPane.showMessageDialog(null,"Un Panel con Scroll\n");
  JOptionPane.showMessageDialog(null,"By Carlitox ("+
   "http://calitoxenlaweb.blogspot.com)");
  new panelconscroll();
 }
}
   En lo único que debemos fijarnos es en las siguientes líneas de código:
JScrollPane scroll2 = new JScrollPane(panel);
add(scroll2);
   O en su defecto:
JScrollPane scroll2 = new JScrollPane();
scroll2.add(panel);
this.add(scroll2);
   Son las importantes, lo que hacemos es simple, creamos un nuevo scroll para luego agregarle el panel, por lo que tenemos 2, el del "TextArea" y el del panel en si, actualmente el "JScrollPane" acepta cualquier clase de componente swing, por lo que las posibilidades son muchas... suerte!