Présentation de JScrollPane en Java

JScrollPane est utilisé pour donner une vue déroulante à votre composant. Lorsque la taille de l'écran est petite ou limitée, nous pouvons utiliser un volet de défilement pour présenter un grand composant ou un composant dont la taille change dynamiquement. Le composant doit être léger comme l'image, le tableau, le texte, la zone de texte, etc. Le composant JScrollPane doit être à l'intérieur du conteneur comme JFrame ou JPanel. C'est un composant important de la programmation graphique, en particulier votre besoin de gérer et d'afficher une grande quantité de données. Dans cette rubrique, nous allons découvrir JScrollPane en Java. Lorsque la taille de l'écran est limitée, nous devons utiliser le volet de défilement pour les deux conditions suivantes:

  1. Pour afficher un grand composant.
  2. Pour afficher un composant modifiable de taille dynamique.

La classe JScrollPane est une combinaison de fenêtres et de barres de défilement. Il connectera notre fenêtre avec la barre de défilement. Nous pouvons contrôler l'apparence de nos barres de défilement en utilisant les propriétés de stratégie d'affichage des barres de défilement: verticalScrollbarPolicy et horizontalScrollbarPolicy.

Ces deux propriétés peuvent avoir des valeurs AS_NEEDED, ALWAYS ou NEVER. Il dispose également de deux fenêtres supplémentaires:

  1. rowHeading - Utilisé pour faire défiler horizontalement
  2. columnHeading - Utilisé pour faire défiler verticalement

Constructeurs

Le seul but du constructeur de cette classe est de créer un volet de défilement. Ses dimensions sont minées par les valeurs d'entrée de ces constructeurs, c'est-à-dire les paramètres. Les constructeurs de la classe JscrollPane sont de deux types paramétrés et non paramétrés, ils sont en outre classés comme ci-dessous:

1. JScrollPane () - Crée un volet de défilement vide (pas de viewPort). Il peut avoir des barres de défilement verticales et horizontales en cas de besoin.

Exemple:

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

Production:

2. JscrollPane (Composant c) - Crée un volet de défilement avec le composant spécifié. Lorsque le contenu du composant est plus grand que la vue, une barre de défilement horizontale et verticale apparaît.

Exemple:

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

Production:

3. JScrollPane (int vsPolicy, int hsPolicy) - Crée un volet de défilement avec les politiques de défilement spécifiées.

Exemple:

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

Production:

4. JScrollPane (Composant c, int vsPolicy, int hsPolicy) - Crée un volet de défilement avec le composant spécifié. La position des composants est contrôlée avec une paire de barres de défilement.

Exemple:

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

Production:

Méthodes dans la classe JscrollPane

  1. setColumnHeaderView (Component) - Il définit l'en-tête de colonne pour le volet de défilement du composant spécifié dans les paramètres.
  2. setRowHeaderView (Component) - Il définit l'en-tête de ligne pour le volet de défilement du composant spécifié dans les paramètres.
  3. setCorner (String key, Component) - Il définit l'angle du volet de défilement pour le composant spécifié dans le paramètre. Le paramètre de clé de chaîne est accompagné des éléments suivants:
    JScrollPane.UPPER_LEFT_CORNER, JScrollPane.UPPER_RIGHT_CORNER, JScrollPane.LOWER_LEFT_CORNER, JScrollPane.LOWER_RIGHT_CORNER, JScrollPane.LOWER_LEADING_CORNER, JScrollPANER_LOWERCERNER, JScrollP
  4. getCorner (Component) - Il obtient le coin du volet de défilement pour le composant spécifié dans le paramètre.

Exemples de JScrollPane en Java

Voici quelques exemples donnés ci-dessous

1. Exemple de programme pour 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);
)
)

Production:

2. Exemple de JTable avec 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);
)
)
)

Production:

Conclusion

Lorsque la taille de l'écran est limitée, nous devons utiliser un volet de défilement pour afficher les grands composants ou les composants dont la taille peut changer dynamiquement.

Articles recommandés

Ceci est un guide de JScrollPane en Java. Nous discutons ici du constructeur, des méthodes et des exemples de JScrollPane en Java. Vous pouvez également consulter les articles suivants pour en savoir plus -

  1. Tableaux 2D en Java
  2. Tableaux en JavaScript
  3. Motifs d'étoiles en Java
  4. Boucle en Java
  5. JPanel à Java | Comment créer un panneau?
  6. Exemples de JFrame en Java
  7. JLabel en Java
  8. Flowlayout en Java
  9. 3 différents types de tableaux en PHP (exemples)
  10. Guide du programme de JTable en Java