You seem to be using the wrong JTable constructor.
You assign columns and data to the model and assign the columns and data to the table (View), but you never assign the model to the view.
You assign the data to the JTable but never actually use the new model that you created. When you just assign the data a default model is created (without your changes).
Use
JTable table= new JTable(dm);
instead of
JTable table= new JTable(data,columns);

When you modified the DefaultTableModel with the following:
dm=new DefaultTableModel(){
boolean isCellEditable(int row, int column) {
return false;
} ;
}
you modified the model (dm) to not allow editing.
This code basically says: I want to use the normal DefaultTableModel but instead of using the default method of isCellEditable()(ie the one that always returns true), I want to use this one (this one always returns false).

However you never said: I want to use dm as the model for the new JTable.
You can do this by using a different JTable constructor:
JTable table= new JTable(dm);
instead of
JTable table= new JTable(data,columnNames);

Have you tried that? That looks to be the only thing wrong. All the other code seems to be correct.

Featured Post

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

An old method to applying the Singleton pattern in your Java code is to check if a static instance, defined in the same class that needs to be instantiated once and only once, is null and then create a new instance; otherwise, the pre-existing insta…

Introduction
This article is the second of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article covers the basic installation and configuration of the test automation tools used by…

Viewers learn about the scanner class in this video and are introduced to receiving user input for their programs. Additionally, objects, conditional statements, and loops are used to help reinforce the concepts.
Introduce Scanner class:
Importing…