Visão geral do JScrollPane em Java

JScrollPane é usado para fornecer uma visão rolável ao seu componente. Quando o tamanho da tela é pequeno ou limitado, podemos usar um painel de rolagem para mostrar um componente grande ou um componente cujo tamanho muda dinamicamente. O componente deve ser leve, como imagem, tabela, texto, área de texto, etc. O componente JScrollPane deve estar dentro do contêiner, como JFrame ou JPanel. É um componente importante na programação gráfica, especialmente sua necessidade de manipular e exibir uma grande quantidade de dados. Neste tópico, vamos aprender sobre o JScrollPane em Java. Quando temos um tamanho de tela limitado, precisamos usar o painel de rolagem para as duas condições a seguir:

  1. Para exibir um componente grande.
  2. Para exibir um componente alterável de tamanho dinâmico.

A classe JScrollPane é uma combinação de viewports e barras de rolagem. Ele conectará nossa viewport à barra de rolagem. Podemos controlar nossas aparências das barras de rolagem usando as propriedades da política de exibição da barra de rolagem: verticalScrollbarPolicy e horizontalScrollbarPolicy.

Ambas as propriedades podem ter valores AS_NEEDED, SEMPRE ou NUNCA. Ele também possui duas viewports adicionais:

  1. rowHeading - Usado para rolar horizontalmente
  2. columnHeading - Usado para rolar verticalmente

Construtores

O único propósito do construtor desta classe é criar um painel de rolagem. As dimensões são prejudicadas pelos valores de entrada para esses construtores, ou seja, parâmetros. Os construtores da classe JscrollPane são de dois tipos Parametrizados e Não Parametrizados, eles são classificados ainda como abaixo:

1. JScrollPane () - Cria um painel de rolagem vazio (sem viewPort). Pode ter barras de rolagem verticais e horizontais quando necessário.

Exemplo:

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);
)
)

Resultado:

2. JscrollPane (Componente c) - Cria um painel de rolagem com o componente especificado. Quando o conteúdo do componente é maior que a visualização, a barra de rolagem horizontal e vertical é exibida.

Exemplo:

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);
)
)

Resultado:

3. JScrollPane (int vsPolicy, int hsPolicy) - Cria um painel de rolagem com as políticas de rolagem especificadas.

Exemplo:

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);
)
)

Resultado:

4. JScrollPane (Componente c, int vsPolicy, int hsPolicy) - Cria um painel de rolagem com o componente especificado. A posição do componente é controlada com um par de barras de rolagem.

Exemplo:

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);
)
)

Resultado:

Métodos na classe JscrollPane

  1. setColumnHeaderView (Component) - define o cabeçalho da coluna para o painel de rolagem do componente especificado nos parâmetros.
  2. setRowHeaderView (Component) - define o cabeçalho da linha para o painel de rolagem do componente especificado nos parâmetros.
  3. setCorner (String string, Component) - define o canto do painel de rolagem para o componente especificado no parâmetro. O parâmetro da chave da string é junto com o seguinte:
    JScrollPane.UPPER_LEFT_CORNER, JScrollPane.UPPER_RIGHT_CORNER, JScrollPane.LOWER_LEFT_CORNER, JScrollPane.LOWER_RIGHT_CORNER, JScrollPane.
  4. getCorner (Component) - Obtém o canto do painel de rolagem do componente especificado no parâmetro.

Exemplos de JScrollPane em Java

Aqui estão alguns dos exemplos dados abaixo

1. Exemplo de programa 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);
)
)

Resultado:

2. Exemplo de JTable com 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);
)
)
)

Resultado:

Conclusão

Quando o tamanho da tela é limitado, precisamos usar um painel de rolagem para exibir componentes grandes ou componentes cujo tamanho pode mudar dinamicamente.

Artigos recomendados

Este é um guia para JScrollPane em Java. Aqui discutimos o construtor, métodos e exemplos de JScrollPane em Java. Você também pode consultar os seguintes artigos para saber mais -

  1. Matrizes 2D em Java
  2. Matrizes em JavaScript
  3. Padrões de estrelas em Java
  4. While Loop em Java
  5. JPanel em Java | Como criar painel?
  6. Exemplos de JFrame em Java
  7. JLabel em Java
  8. Flowlayout em Java
  9. 3 tipos diferentes de matrizes em PHP (exemplos)
  10. Guia de Programa da JTable em Java