Creating a Scrollable JTable

In this Java programming section, you will learn how to create a scrollable JTable component.

Creating a Scrollable JTable

In this Java programming section, you will learn how to create a scrollable JTable component.

Creating a Scrollable JTable

Creating a Scrollable JTable : Swing Tutorials 

     

In this Java programming section, you will learn how to create a scrollable JTable component. When any table has large volume of data, the use of scrollbar is applied in the JTable. The JScrollPane provides you to scrollable facility to scroll the scroll bar and you get all the contents. 

Description of program:

The following program helps you to create a scrollable JTable. First of all, this program creates a table having the large amount of data and columns with column header. The JScrollPane provides the facility for looking its data by scrolling the scroll bar either horizontal or vertical or both. The auto resize mode property of JTable is true by default so, it couldn't be scrollable.  To use the scrollable property of table first remove  the auto resize mode property then use the scrollable property.

Description of code:

setAutoResizeMode(int mode):
This is the method to sets the auto resize mode of JTable for resizing the JTable. It takes the following specified integer type values:

  1. AUTO_RESIZE_OFF: Can't arrange column widths automatically, when you use scrollbar.
  2. AUTO_RESIZE_NEXT_COLUMN: It arranges the next column in opposite way.
  3. AUTO_RESIZE_SUBSEQUENT_COLUMNS: It arranges in subsequent column.
  4. AUTO_RESIZE_LAST_COLUMN: It adjusts in the base of last column. 
  5. AUTO_RESIZE_ALL_COLUMNS: It resize all column automatically.

Here is the code of program:

import javax.swing.*;
import javax.swing.table.*;
import java.awt.*;

public class ScrollableJTable{
  public static void main(String[] args) {
  new ScrollableJTable();
  }
  public ScrollableJTable(){
  JFrame frame = new JFrame("Creating a Scrollable JTable!");
  JPanel panel = new JPanel();
  String data[][] {{"001","vinod","Bihar","India","Biology","65","First"},
   {
"002","Raju","ABC","Kanada","Geography","58","second"},
   {
"003","Aman","Delhi","India","computer","98","Dictontion"},
   {
"004","Ranjan","Bangloor","India","chemestry","90","Dictontion"},
   {
"001","vinod","Bihar","India","Biology","65","First"},
   {
"002","Raju","ABC","Kanada","Geography","58","second"},
   {
"003","Aman","Delhi","India","computer","98","Dictontion"},
   {
"004","Ranjan","Bangloor","India","chemestry","90","Dictontion"},
   {
"001","vinod","Bihar","India","Biology","65","First"},
   {
"002","Raju","ABC","Kanada","Geography","58","second"},
   {
"003","Aman","Delhi","India","computer","98","Dictontion"},
   {
"004","Ranjan","Bangloor","India","chemestry","90","Dictontion"},
   {
"001","vinod","Bihar","India","Biology","65","First"},
   {
"002","Raju","ABC","Kanada","Geography","58","second"},
   {
"003","Aman","Delhi","India","computer","98","Dictontion"},
   {
"004","Ranjan","Bangloor","India","chemestry","90","Dictontion"},
   {
"001","vinod","Bihar","India","Biology","65","First"},
   {
"002","Raju","ABC","Kanada","Geography","58","second"},
   {
"003","Aman","Delhi","India","computer","98","Dictontion"},
   {
"004","Ranjan","Bangloor","India","chemestry","90","Dictontion"},
   {
"001","vinod","Bihar","India","Biology","65","First"},
   {
"002","Raju","ABC","Kanada","Geography","58","second"},
   {
"003","Aman","Delhi","India","computer","98","Dictontion"},
   {
"004","Ranjan","Bangloor","India","chemestry","90","Dictontion"},
   {
"001","vinod","Bihar","India","Biology","65","First"},
   {
"002","Raju","ABC","Kanada","Geography","58","second"},
   {
"003","Aman","Delhi","India","computer","98","Dictontion"},
   {
"004","Ranjan","Bangloor","India","chemestry","90","Dictontion"},
   {
"001","vinod","Bihar","India","Biology","65","First"},
   {
"002","Raju","ABC","Kanada","Geography","58","second"},
   {
"003","Aman","Delhi","India","computer","98","Dictontion"},
   {
"004","Ranjan","Bangloor","India","chemestry","90","Dictontion"}};
  String col[] {"Roll","Name","State","country","Math","Marks","Grade"};
  JTable table = new JTable(data,col);
  JTableHeader header = table.getTableHeader();
  header.setBackground(Color.yellow);
  JScrollPane pane = new JScrollPane(table);
  table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
  panel.add(pane);
  frame.add(panel);
  frame.setSize(500,150);
  frame.setUndecorated(true);
  frame.getRootPane().setWindowDecorationStyle(JRootPane.PLAIN_DIALOG);
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  frame.setVisible(true);
  }
}

Download this example.

Output of program: