Solved

Set JTable non editable

Posted on 2011-03-22
14
952 Views
Last Modified: 2012-08-14
I am using JTable in my application. I want to set all cells of table non-editable. How can I do it? Please help.
0
Comment
Question by:Aurii
  • 6
  • 5
  • 3
14 Comments
 
LVL 86

Expert Comment

by:CEHJ
ID: 35188798
0
 

Author Comment

by:Aurii
ID: 35189727
I am using netbeans. I took JTable 'tblSearch' by drag and drop and done below coding

private String rows[][] = new String[0][5];
    private String columns[] = {"Doctor ID","Doctor Name","Address","Contact Number","E-mail Id"};
    private javax.swing.table.DefaultTableModel tm = new javax.swing.table.DefaultTableModel(rows,columns);

tblSearch.setModel(tm);

The code from your example is not working for my code. Please suggest solution for my code.
0
 
LVL 86

Accepted Solution

by:
CEHJ earned 150 total points
ID: 35189798
You need to do
private javax.swing.table.DefaultTableModel tm = new javax.swing.table.DefaultTableModel(rows,columns) {
    public boolean isCellEditable(int row, int col) {
        return false
    }
};

Open in new window

0
 

Author Comment

by:Aurii
ID: 35189970
Thank you its' worked. But if I need some cell editable and some non editable then how can can I do it?
0
 
LVL 86

Expert Comment

by:CEHJ
ID: 35190414
You need to return true/false for the appropriate cell
0
 
LVL 92

Assisted Solution

by:objects
objects earned 100 total points
ID: 35194923
see the example here
http://www.exampledepot.com/egs/javax.swing.table/NoEdit.html

to just make say solumn 1 not editable you could do something like this:


TableModel model = new DefaultTableModel() {
    public boolean isCellEditable(int rowIndex, int mColIndex) {
        return mColIndex!=1;
    }
};
0
 

Author Comment

by:Aurii
ID: 35196281
Hi CEHL, I am not geting how to return true/false for the appropriate cell for my code. I want to set all table non editable except some cells. Please suggest solution for my code.

Hi objects, Actually your code works for single column but what if I want to set it for multiple columns.

Actually my 1 table want all cells non editable except some cells And my another table want all cells non editable except some columns.
0
How to run any project with ease

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

 
LVL 86

Assisted Solution

by:CEHJ
CEHJ earned 150 total points
ID: 35196450
'Some' needs to be specified numerically. Let's say you need to set the first, third and fifth columns editable, the rest not:
TableModel model = new DefaultTableModel() {
	public boolean isCellEditable(int rowIndex, int mColIndex) {
	    boolean result = false;
	    switch(rowIndex) {
		case 0:
		case 2:
		case 4:
		    result = true;
		default:
		    result = false;
	    }
	    return result;
	}
    };

Open in new window

0
 
LVL 92

Assisted Solution

by:objects
objects earned 100 total points
ID: 35197094
> Hi objects, Actually your code works for single column but what if I want to set it for multiple columns.

just expand on what I posted above

eg. to only allow editting on columns 2 and 3

        return mColIndex==2 || mColIndex==3;

just change the condition to meet your needs
0
 

Author Comment

by:Aurii
ID: 35230323
Hi chej, Actually your code is working for hole row. what if I need to set some cell editable, let's say (2,3) and (5,8)
0
 
LVL 92

Expert Comment

by:objects
ID: 35230342
explained that in my previous comment
you would use

        return (mColIndex==2 && rowIndex=3) || (mColIndex==5 && mRowIndex=8);
0
 

Author Comment

by:Aurii
ID: 35230547
but this statement giving me following error,
'operator && cannot be applied to boolean,int'
0
 
LVL 86

Assisted Solution

by:CEHJ
CEHJ earned 150 total points
ID: 35230559

return (mColIndex==2 && rowIndex==3) || (mColIndex==5 && rowIndex==8);

Open in new window

0
 
LVL 86

Expert Comment

by:CEHJ
ID: 35230854
:)
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

Suggested Solutions

INTRODUCTION Working with files is a moderately common task in Java.  For most projects hard coding the file names, using parameters in configuration files, or using command-line arguments is sufficient.   However, when your application has vi…
Are you developing a Java application and want to create Excel Spreadsheets? You have come to the right place, this article will describe how you can create Excel Spreadsheets from a Java Application. For the purposes of this article, I will be u…
This tutorial covers a step-by-step guide to install VisualVM launcher in eclipse.
This video teaches viewers about errors in exception handling.

706 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

20 Experts available now in Live!

Get 1:1 Help Now