Solved

JTable: Update Value

Posted on 2006-10-23
9
230 Views
Last Modified: 2010-03-31
Hello:
I have created JTree using Arraylist. So Left side is JTree and when I pick the node it display its content to right side in JTable.  In the Table there are 5 colunms. 2 columns are JComboBox.
I have created JTable like this:
model = new DefaultTableModel(data, columns);
table = new JTable(model)
{

      public void setValueAt(Object value, int row, int col)
      {
            data[row][col] = value;
      }
};


// I add new Row like this
if(e.getSource() == AddNewRow)
{
  // add to array list  
  model.addRow(data);
}

Everything is working fine but the only problem is  The value that I change does not update right away.
When I select another node and go back to the previous node I see all the value that I have changed.

Can you please show me how to make this thing work?

Thanks
0
Comment
Question by:T_Shah
  • 4
  • 3
9 Comments
 
LVL 14

Expert Comment

by:hoomanv
ID: 17790103
You dont need to override the setValueAt method
0
 
LVL 14

Expert Comment

by:hoomanv
ID: 17790210
The original setValueAt invokes fireTableCellUpdated to notify the JTable of changes

public void setValueAt(Object value, int row, int col) {
      rowData[row][col] = value;
      fireTableCellUpdated(row, col);
}
0
 

Author Comment

by:T_Shah
ID: 17790481
You are right about that.
It was working fine but since Add tried to add new rows it is not working
0
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

 

Author Comment

by:T_Shah
ID: 17790705
Is it possible because of size of data.
Initially I have size of data as follow

data = new String[arraylist.size()][5];

now I added new row I add like this:

if(e.getSource() == AddNewRow)
{
  // add values to array list  
  model.addRow(data);
}

Becaue I am having this problem since I am trying to add new Row...

Any suggesstion!!!!
0
 
LVL 14

Expert Comment

by:hoomanv
ID: 17790755
DefaultTableModel is not restricted to row or column count
There is somthing else working wrong in your code
0
 

Author Comment

by:T_Shah
ID: 17791039
Thanks for the advise.
I am doing this way
model = new DefaultTableModel(data, columns);
table = new JTable(model)

It does not work

But If I do this
table = new JTable(data, columns)

It let me change value and works fine but the important thing is I can not add/remove row
0
 
LVL 14

Accepted Solution

by:
hoomanv earned 75 total points
ID: 17794036
> I can not add/remove row
You can, thru the DefaultTableModel
Call model.addRow()
And it will invoke fireTableRowsInserted() internally
0

Featured Post

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

Join & Write a Comment

Suggested Solutions

Title # Comments Views Activity
array11 challenge 16 51
mapBully challenge 6 88
HashMap Vs TreeMap 12 48
Eclipse Neon and jdk 1.8.0 11 65
Introduction This article is the first of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article explains our test automation goals. Then rationale is given for the tools we use to a…
Basic understanding on "OO- Object Orientation" is needed for designing a logical solution to solve a problem. Basic OOAD is a prerequisite for a coder to ensure that they follow the basic design of OO. This would help developers to understand the b…
Viewers will learn about the regular for loop in Java and how to use it. Definition: Break the for loop down into 3 parts: Syntax when using for loops: Example using a for loop:
The viewer will learn how to implement Singleton Design Pattern in Java.

708 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

16 Experts available now in Live!

Get 1:1 Help Now