Descripción general de JScrollPane en Java

JScrollPane se usa para dar una vista desplazable a su componente. Cuando el tamaño de la pantalla es pequeño o limitado, podemos usar un panel de desplazamiento para mostrar un componente grande o un componente cuyo tamaño cambia dinámicamente. El componente debe ser liviano como imagen, tabla, texto, área de texto, etc. El componente JScrollPane debe estar dentro del contenedor como JFrame o JPanel. Es un componente importante en la programación gráfica, especialmente su necesidad de manejar y mostrar una gran cantidad de datos. En este tema, vamos a aprender sobre JScrollPane en Java. Cuando tenemos un tamaño de pantalla limitado, debemos usar el panel de desplazamiento para las dos condiciones siguientes:

  1. Para mostrar un componente grande.
  2. Para mostrar un componente variable de tamaño dinámico.

La clase JScrollPane es una combinación de ventanas gráficas y barras de desplazamiento. Conectará nuestra ventana gráfica con la barra de desplazamiento. Podemos controlar las apariencias de nuestras barras de desplazamiento utilizando las propiedades de la política de visualización de la barra de desplazamiento: verticalScrollbarPolicy y horizontalScrollbarPolicy.

Ambas propiedades pueden tener valores AS_NEEDED, SIEMPRE o NUNCA. También tiene dos ventanas gráficas adicionales:

  1. rowHeading: se usa para desplazarse horizontalmente
  2. columnHeading: se usa para desplazarse verticalmente

Constructores

El único propósito del constructor de esta clase es crear un panel de desplazamiento. Sus dimensiones se ven socavadas por los valores de entrada a estos constructores, es decir, parámetros. Los constructores de la clase JscrollPane son de dos tipos Parametrizados y No parametrizados, además se clasifican a continuación:

1. JScrollPane (): crea un panel de desplazamiento vacío (sin viewPort). Puede tener barras de desplazamiento tanto verticales como horizontales cuando sea necesario.

Ejemplo:

import java.awt.*;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class Jscrollpane (
public static void main(String() args) (
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout());
JScrollPane scrollPane = new JScrollPane();
panel.add(scrollPane);
frame.setContentPane(panel);
frame.setSize(500, 500);
frame.setLocationByPlatform(true);
frame.setVisible(true);
)
)

Salida:

2. JscrollPane (Componente c): crea un panel de desplazamiento con el componente especificado. Cuando el contenido del componente es más grande que la vista, aparece la barra de desplazamiento horizontal y vertical.

Ejemplo:

import java.awt.*;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class Jscrollpane (
public static void main(String() args) (
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout());
JTextArea tArea = new JTextArea(10, 10);
JScrollPane scrollPane = new JScrollPane(tArea);
panel.add(scrollPane);
frame.setContentPane(panel);
frame.setSize(500, 500);
frame.setLocationByPlatform(true);
frame.setVisible(true);
)
)

Salida:

3. JScrollPane (int vsPolicy, int hsPolicy): crea un panel de desplazamiento con las políticas de desplazamiento especificadas.

Ejemplo:

import java.awt.*;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class Jscrollpane (
public static void main(String() args) (
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout());
JScrollPane scrollPane = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
panel.add(scrollPane);
frame.setContentPane(panel);
frame.setSize(500, 500);
frame.setLocationByPlatform(true);
frame.setVisible(true);
)
)

Salida:

4. JScrollPane (Componente c, int vsPolicy, int hsPolicy): crea un panel de desplazamiento con el componente especificado. La posición del componente se controla con un par de barras de desplazamiento.

Ejemplo:

import java.awt.*;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class Jscrollpane (
public static void main(String() args) (
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout());
JTextArea tArea = new JTextArea(10, 10);
JScrollPane scrollPane = new JScrollPane(tArea, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
panel.add(scrollPane);
frame.setContentPane(panel);
frame.setSize(500, 500);
frame.setLocationByPlatform(true);
frame.setVisible(true);
)
)

Salida:

Métodos en la clase JscrollPane

  1. setColumnHeaderView (Componente): establece el encabezado de columna para el panel de desplazamiento del componente especificado en los parámetros.
  2. setRowHeaderView (Componente): establece el encabezado de fila para el panel de desplazamiento del componente especificado en los parámetros.
  3. setCorner (clave de cadena, componente): establece la esquina del panel de desplazamiento para el componente especificado en el parámetro. El parámetro de clave de cadena es junto con lo siguiente:
    JScrollPane.UPPER_LEFT_CORNER, JScrollPane.UPPER_RIGHT_CORNER, JScrollPane.LOWER_LEFT_CORNER, JScrollPane.LOWER_RIGHT_CORNER, JScrollPane.LOWER_LEADING_CORNER, JScrollPane.LOWER_TRAILING_CORNER, JScrollPane.UPPER_LEADING_CORNER, JScrollPane.UPPER_TRAILING_CORNER
  4. getCorner (Componente): obtiene la esquina del panel de desplazamiento para el componente especificado en el parámetro.

Ejemplos de JScrollPane en Java

Estos son algunos de los ejemplos que figuran a continuación.

1. Programa de ejemplo para JscrollPane

import java.awt.*;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class Jscrollpane (
public static void main(String() args) (
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout());
JTextArea tArea = new JTextArea(20, 20);
JLabel labelColumn = new JLabel("Column Header");
JLabel labelRow = new JLabel("Row Header");
JLabel label1 = new JLabel("UL");
JLabel label2 = new JLabel("UR");
JLabel label3 = new JLabel("LL");
JLabel label4 = new JLabel("LR");
JScrollPane scrollPane = new JScrollPane(tArea);
scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
scrollPane.setColumnHeaderView(labelColumn);
scrollPane.setRowHeaderView(labelRow);
scrollPane.setCorner(JScrollPane.UPPER_LEFT_CORNER, label1);
scrollPane.setCorner(JScrollPane.UPPER_RIGHT_CORNER, label2);
scrollPane.setCorner(JScrollPane.LOWER_LEFT_CORNER, label3);
scrollPane.setCorner(JScrollPane.LOWER_RIGHT_CORNER, label4);
panel.add(scrollPane);
frame.setContentPane(panel);
frame.setSize(500, 500);
frame.setLocationByPlatform(true);
frame.setVisible(true);
)
)

Salida:

2. Ejemplo de JTable con JScrollPane

import javax.swing.*;
import java.awt.*;
import javax.swing.table.TableModel;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.DefaultTableCellRenderer;
public class JScrollDemo (
public static void main(String() args) (
(
String() index = new String() ( "S.No", "Continent", "Area (square.km)",
"Percentage Total Mass" );
JFrame frame = new JFrame("JScrollPane with JTable");
JLabel label = new JLabel("Continents Largest To Smallest", JLabel.CENTER);
Object()() data = new Object()() (
( "S.No", "Continent", "Area (square.km)", "Percentage Total Mass" )
( "1", "Asia", "44, 579, 000", "29.5%" ),
( "2", "Africa", "30, 370, 000", "20.4%" ),
( "3", "North America", "24, 709, 000", "16.5%" ),
( "4", "South America", "17, 840, 000", "12.0%" ),
( "5", "Antartica", "14, 000, 000", "9.2%" ),
( "6", "Europe", "10, 180, 000", "6.8%" ),
( "7", "Australia", "8, 600, 000", "5.9%" ), );
// creating a DeFaultTableModel object, which is subclass of
// TableModel
DefaultTableModel TableModel = new DefaultTableModel(data, index);
// Initializing a JTable from DefaultTableModel.
JTable table = new JTable(TableModel);
// Adjusting the contents of each cell of JTable in CENTER
DefaultTableCellRenderer tableCellRenderer = new DefaultTableCellRenderer();
// Aligning the table data centrally.
tableCellRenderer.setHorizontalAlignment(JLabel.CENTER);
table.setDefaultRenderer(Object.class, tableCellRenderer);
// Creating a JPanel, setting it layout to BorderLayout and adding
// JTable to it.
JPanel panel = new JPanel(new BorderLayout());
panel.add(table, BorderLayout.CENTER);
// Creating a JScrollPane and adding its functionalities to JPanel
JScrollPane scrollPane = new JScrollPane(panel);
// Adding a JLabel and JScrollPane to JFrame.
frame.add(label, BorderLayout.NORTH);
frame.add(scrollPane, BorderLayout.CENTER);
frame.setSize(320, 200);
frame.setVisible(true);
)
)
)

Salida:

Conclusión

Cuando el tamaño de la pantalla es limitado, necesitamos usar un panel de desplazamiento para mostrar componentes grandes o componentes cuyo tamaño puede cambiar dinámicamente.

Artículos recomendados

Esta es una guía de JScrollPane en Java. Aquí discutimos el constructor, los métodos y los ejemplos de JScrollPane en Java. También puede echar un vistazo a los siguientes artículos para obtener más información:

  1. Matrices 2D en Java
  2. Matrices en JavaScript
  3. Patrones de estrellas en Java
  4. Mientras Loop en Java
  5. JPanel en Java | ¿Cómo crear un panel?
  6. Ejemplos de JFrame en Java
  7. JLabel en Java
  8. Flowlayout en Java
  9. 3 diferentes tipos de matrices en PHP (ejemplos)
  10. Guía para el programa de JTable en Java