Przegląd JScrollPane w Javie

JScrollPane służy do przewijania widoku komponentu. Gdy rozmiar ekranu jest mały lub ograniczony, możemy użyć panelu przewijania, aby pokazać duży komponent lub komponent, którego rozmiar zmienia się dynamicznie. Komponent powinien być lekki jak obraz, tabela, tekst, obszar tekstowy itp. Komponent JScrollPane powinien znajdować się w kontenerze, jak JFrame lub JPanel. Jest to ważny element w programowaniu graficznym, zwłaszcza potrzeba obsługi i wyświetlania dużej ilości danych. W tym temacie poznamy JScrollPane w Javie. Kiedy mamy ograniczony rozmiar ekranu, musimy użyć panelu przewijania dla następujących dwóch warunków:

  1. Aby wyświetlić duży komponent.
  2. Aby wyświetlić dynamicznie zmieniany rozmiar komponentu.

Klasa JScrollPane to połączenie rzutni i pasków przewijania. Połączy naszą rzutnię z paskiem przewijania. Możemy kontrolować wygląd naszych pasków przewijania za pomocą właściwości zasad wyświetlania paska przewijania: verticalScrollbarPolicy i horizontalScrollbarPolicy.

Obie te właściwości mogą mieć wartości AS_NEEDED, ZAWSZE lub NIGDY. Ma również dwie dodatkowe rzutnie:

  1. rowHeading - Używany do przewijania w poziomie
  2. columnHeading - Używany do przewijania w pionie

Konstruktory

Jedynym celem konstruktora tej klasy jest utworzenie panelu przewijania. Jego wymiary są podważane przez wartości wejściowe dla tych konstruktorów, tj. Parametry. Konstruktory klasy JscrollPane są dwojakiego rodzaju Sparametryzowane i Nieparametryzowane, są dalej klasyfikowane jak poniżej:

1. JScrollPane () - Tworzy pusty panel przewijania (bez viewPort). W razie potrzeby może mieć pionowe i poziome paski przewijania.

Przykład:

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

Wynik:

2. JscrollPane (Component c) - Tworzy panel przewijania z określonym składnikiem. Gdy zawartość komponentu jest większa niż widok, pojawia się poziomy i pionowy pasek przewijania.

Przykład:

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

Wynik:

3. JScrollPane (int vsPolicy, int hsPolicy) - Tworzy panel przewijania z określonymi zasadami przewijania.

Przykład:

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

Wynik:

4. JScrollPane (Component c, int vsPolicy, int hsPolicy) - Tworzy panel przewijania z określonym składnikiem. Pozycja elementu jest kontrolowana za pomocą pary pasków przewijania.

Przykład:

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

Wynik:

Metody w klasie JscrollPane

  1. setColumnHeaderView (Component) - Ustawia nagłówek kolumny dla panelu przewijania określonego składnika w parametrach.
  2. setRowHeaderView (Component) - Ustawia nagłówek wiersza dla panelu przewijania określonego składnika w parametrach.
  3. setCorner (klawisz String, Komponent) - Ustawia narożnik panelu przewijania dla określonego komponentu w parametrze. Parametr klucza ciągu jest następujący:
    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 (Component) - Otrzymuje róg okienka przewijania dla określonego komponentu w parametrze.

Przykłady JScrollPane w Javie

Oto niektóre przykłady podane poniżej

1. Przykładowy program dla 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);
)
)

Wynik:

2. Przykład JTable z 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);
)
)
)

Wynik:

Wniosek

Gdy rozmiar ekranu jest ograniczony, musimy użyć panelu przewijania, aby wyświetlić duże komponenty lub komponenty, których rozmiar może zmieniać się dynamicznie.

Polecane artykuły

Jest to przewodnik po JScrollPane w Javie. Tutaj omawiamy konstruktor, metody i przykłady JScrollPane w Javie. Możesz także zapoznać się z następującymi artykułami, aby dowiedzieć się więcej -

  1. Tablice 2D w Javie
  2. Tablice w JavaScript
  3. Wzory gwiazd w Javie
  4. Podczas pętli w Javie
  5. JPanel w Javie | Jak utworzyć panel?
  6. Przykłady JFrame w Javie
  7. JLabel w Javie
  8. Flowlayout w Javie
  9. 3 różne typy tablic w PHP (przykłady)
  10. Przewodnik po programie JTable w Javie