Esto es un ejemplo de como usar el JScrollPane. Para ello vamos a meter una imagen (puede ser un fichero .gif, .jpg o .png en versiones modernas de java) dentro de un JLabel y esta a su vez dentro de un JScrollPane. Todo ello dentro de un JFrame para visualizarlo.
Tal cual está hecho el código, el JFrame saldrá con el tamaño necesario para ver la imagen completa (la línea que pone ventana.pack() hace eso). Para que aparezcan las barras de scroll hay que redimensionar la ventana, haciéndola más pequeña que la imagen. También, en el código, se podría usar el método setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS) de JScrollPane para obligar a que salga siempre la barra vertical. Hay un método similar para la horizontal.
El "truco" del JScrollPane consiste en llamar al método setViewPortview (Component), en vez de al método add().
Aquí tienes PruebaJScrollPane.java. Puedes bajártelo,
quitarle la extensión txt y meterlo en una estructura de directorios
igual que el nombre de los paquetes, es decir <path_absoluto>/chuidiang/ejemplos/JScrollPane/PruebaJScrollPane.java
/*
* PruebaJScrollPane.java
*
* Created on 15 de abril de 2005, 17:26
*/
package chuidiang.ejemplos.JScrollPane;
import javax.swing.*;
/**
* @author Chuidiang
*
* Ejemplo de uso del JScrollPane. Se mete dentro un JLabel con una
imagen.
*/
public class PruebaJScrollPane {
/** Creates a new instance
of PruebaJScrollPane */
public PruebaJScrollPane() {
//
La ventana
JFrame ventana = new JFrame("Imagen");
//
El panel de scroll
JScrollPane scroll = new JScrollPane();
//
La etiqueta.
JLabel etiqueta = new JLabel();
//
Se carga la imagen, con path absoluto para evitar problemas y debe
// ser un gif.
Icon imagen = new ImageIcon (
"d:/users/javier/paginas_web/chuidiang/iconos/pizarra.gif");
//
Se mete la imagen en el label
etiqueta.setIcon (imagen);
//
Se mete el scroll en la ventana
ventana.getContentPane().add(scroll);
//
Se mete el label en el scroll
scroll.setViewportView(etiqueta);
//
Y se visualiza todo.
ventana.pack();
ventana.setVisible(true);
}
/**
* Programa principal. Instancia un PruebaJScrollPane
* @param args the command line arguments
*/
public static void main(String[] args) {
new PruebaJScrollPane();
}
}