Changing the Name of Column in a JTable

In this section, you will learn how to change the name of column in JTable component.

Changing the Name of Column in a JTable

In this section, you will learn how to change the name of column in JTable component.

Changing the Name of Column in a JTable

Changing the Name of Column in a JTable

     

In this section, you will learn how to change the name of column in JTable component. You have learnt the JTable containing  some data and column with column headers. Sometime, if you want to change the name of column, you must have to change the column header. For changing the name of column, you will need the index of column. Here, you will learn how to change the name in the name of column in a JTable in this following  example.

Description of program:

This program helps you to change the name of column in JTable. For changing the name, you will need a table and column index that have to be changed.. Here the ChangeName method is applied to change the name of column in JTable that uses the getColumnModel, getColumn and setHeaderValue methods. After this you will get the changes column name [Name - Stu_name, Subject - Paper]. As look like the given output.

Description of code:

setHeaderValue(Object col_name):
This is the method that sets the object (column name) to use as headerRenderer. It takes an object parameter that is the name of column in string format.

Here is the code of program:

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

public class ChangeColumnName{
  JTable table;
  public static void main(String arg[]){
  new ChangeColumnName();
  }

  public ChangeColumnName(){
  JFrame frame = new JFrame("Changing Column Name!");
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  JPanel panel = new JPanel();
  String data[][] {{"Vinod","MCA","Computer"},
   {
"Deepak","PGDCA","History"},
   {
"Ranjan","M.SC.","Biology"},
   {
"Radha","BCA","Computer"}};
  String col[] {"Name","Course","Subject"};
  DefaultTableModel model = new DefaultTableModel(data,col);
  table = new JTable(model);
  ChangeName(table,0,"Stu_name");
  ChangeName(table,2,"Paper");
  JTableHeader header = table.getTableHeader();
  header.setBackground(Color.yellow);
  JScrollPane pane = new JScrollPane(table);
  panel.add(pane);
  frame.add(panel);
  frame.setUndecorated(true);
  frame.getRootPane().setWindowDecorationStyle(JRootPane.PLAIN_DIALOG);
  frame.setSize(500,150);
  frame.setVisible(true);
  }

  public void ChangeName(JTable table, int col_index, String col_name){
  table.getColumnModel().getColumn(col_index).setHeaderValue(col_name);
  }
}

Download this example.

Output of program:

Before changing the name of column:

After changing the name of column: