Enabling Row, Column and Cell Selections in a JTable

In this section, we are going to describe how to enable the row, column and cell selections in a JTable component.

Enabling Row, Column and Cell Selections in a JTable

Enabling Row, Column and Cell Selections in a JTable

     

In this section, we are going to describe how to enable the row, column and cell selections in a JTable component. But, what is the term 'enable'?

Enable: Enable means to activate, here you will see the enabling row, column and cell selections in a JTable. When you select any cell of a JTable, the entire row is selected that means enabling row property is true. For selecting the entire column, enable the property of column property as 'true' and for selecting only one cell, the property of both must be 'true'.

Description of program:

First of all, this program creates a table containing the data and column with column header. After that set the property of  this table 'enable' or 'disable'. The JTable provides by default enable property to the row, if you select any cell of a table, the entire row will be selected. But if you want to set the enable property of column, you will have to set the property of column as 'true' using the setColumnSelectionAllowed() method. If you want to select only one cell you have to enable both row and column as 'true' through using setRowSelectionAllowed() and setColumnSelectionAllowed() method.

Description of code:

setColumnSelectionAllowed():
This method takes Boolean type values either 'true' or 'false'. If you set the 'true', this method permits you for selecting the column otherwise not.

setRowSelectionAllowed():
This also takes Boolean type values either 'true' or 'false'. If you set the 'true', the row selection is permitted otherwise not.

Here is the code of program:

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

public class EnableRowColumnAndCell{
  JTable table;
  public static void main(String[] args) {
  new EnableRowColumnAndCell();
  }
  public EnableRowColumnAndCell(){
  JFrame frame = new JFrame("Enabling row, column and cell in JTable!");
  JPanel panel = new JPanel();
  String data[][] {{"Vinod","Computer","3"},
  {
"Rahul","History","2"},
  {
"Manoj","Biology","4"},
  {
"Sanjay","PSD","5"}};
  String col [] {"Name","Course","Year"};
  DefaultTableModel model = new DefaultTableModel(data,col);
  table = new JTable(model);
  table.setColumnSelectionAllowed(true);
//  table.setRowSelectionAllowed(true);
  table.setRowSelectionAllowed(false);
  JTableHeader header = table.getTableHeader();
  header.setBackground(Color.yellow);
  JScrollPane pane = new JScrollPane(table);
  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:

Row Selection:

Column Selection:

Cell Selection: