Skip to content

JScrollPane: Desplazamiento

Jerarquía de JScrollPane

1. Raíz Común

java.lang.Object

El JScrollPane funciona como una ventana corredera:

  1. El Viewport es el área visible.
  2. El Componente Cliente es el objeto real que contiene los datos.
  3. Las ScrollBars aparecen dinámicamente según sea necesario.
Arquitectura del JScrollPane
Concepto de Viewport en JScrollPane

1. El Componente Cliente

Representa el contenido total (ej: una imagen gigante o una tabla con miles de filas).

Puedes controlar cuándo aparecen las barras mediante métodos o en el constructor:

ConstanteComportamiento
VERTICAL_SCROLLBAR_ALWAYSLa barra vertical siempre está visible.
VERTICAL_SCROLLBAR_AS_NEEDEDSolo aparece si el texto sobresale (Por defecto).
HORIZONTAL_SCROLLBAR_NEVERNunca muestra la barra horizontal (ideal con lineWrap).

import javax.swing.*;
public class EjemploScroll extends JFrame {
public EjemploScroll() {
JTextArea area = new JTextArea(20, 30);
// FORMA CORRECTA: Metemos el área dentro del scroll
JScrollPane scroll = new JScrollPane(area);
// Configuramos políticas si es necesario
scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
// Añadimos el CONTENEDOR (scroll), no el área directamente
this.add(scroll);
this.setSize(400, 300);
this.setVisible(true);
}
}

A diferencia del JScrollPane de AWT, el JScrollPane de Swing es un componente ligero que permite personalización extrema de las barras, el fondo y hasta los botones de las esquinas.