What are the differences between a JScrollBar and a JScrollPane in Java?

What are the differences between a JScrollBar and a JScrollPane in Java?

A JScrollBar is a component and it doesn’t handle its own events whereas a JScrollPane is a Container and it handles its own events and performs its own scrolling. A JScrollBar cannot have a JScrollPane whereas a JScrollPane can have a JScrollBar.

JScrollBar

  • The object of the JScrollBar class is used to add horizontal and vertical scrollbar which allow the user to select items between a specified minimum and maximum values.
  • A JScrollBar class is an implementation of a scrollbar and inherits the JComponent class.

Syntax

public class JScrollBar extends JComponent implements Adjustable, Accessible

Example

import javax.swing.*;
import java.awt.*;
public class JScrollBarTest extends JFrame{
   JScrollBarTest() {
      setTitle("JScrollBar Test");
      JScrollBar jsb = new JScrollBar();
      setLayout(new FlowLayout());
      add(jsb);
      setSize(350, 275);
      setLocationRelativeTo(null);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setVisible(true);
   }
   public static void main(String args[]) {
      new JScrollBarTest();
   }
}

Output

JScrollPane

  • A JSrollPane is used to make a scrollable view of a component.
  • A scroll pane is an object of the JScrollPane class which extends JComponent class.
  • When screen size is limited, we use a scroll pane to display a large component or a component whose size can change dynamically.
  • The important methods of JScrollPane class are setColumnHeaderView(),
    setRowHeaderView(), setViewportView() and etc.

Example

import javax.swing.*;
import java.awt.*;
public class JScrollPaneTest extends JFrame {
   JScrollPaneTest() {
      setTitle("JScrollPane Test");
      JPanel panel = new JPanel();
      panel.setLayout(new BorderLayout());
      JScrollPane jsp = new JScrollPane(panel, ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,          ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
      add(jsp);
      setSize(350, 275);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setLocationRelativeTo(null);
      setVisible(true);
   }
   public static void main(String[] args) {
      new JScrollPaneTest();
   }
}

Output

Advertisements