• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Tim Cooke
  • Paul Clapham
  • Devaka Cooray
  • Bear Bibeault
Sheriffs:
  • Junilu Lacar
  • Knute Snortum
  • Liutauras Vilda
Saloon Keepers:
  • Ron McLeod
  • Stephan van Hulst
  • Tim Moores
  • Tim Holloway
  • Piet Souris
Bartenders:
  • salvin francis
  • Carey Brown
  • Frits Walraven

jtable problem please help

 
Greenhorn
Posts: 9
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi everybody,


I have a JTable for which i have rendered one column as a JCombobox.
The Combobox appears to be fine.
The problem is when i select a value from the combobox, all the other values of the combobox also get selected the same value .
This happens for the first time only.
For eg i have 1,2,3,4 as combobox elements .
If i select value 1 on the first row all the other row values are also set to one.

Below is some part of the code for clarity.

Please help me.
Thanks in advance.

//this is how i add the jcombobox to the jtable cell.
jtable2.getColumn("VALIDITY").setCellRenderer(new MyComboRenderer(new JComboBox(new String[]{"1","2","3"})));


jtable2.getColumn("VALIDITY").setCellEditor(new MyComboEditor(new JComboBox(new String[]{"1","2","3"})));

Below is the MyComboRenderer and My ComboEditor class

//COMBOBOX RENDERER
class MyComboRenderer extends CustomTableCellRenderer{


public MyComboRenderer(JComboBox aRenderingComponent) {
super(aRenderingComponent);
}

public void setValue(Object aValue) {
((JComboBox)this.getRenderingComponent()).setSelectedItem(aValue);
}
public void setValue(Object aValue, int row) {
//System.out.println(" -----------cell REndere--------------");
((JComboBox)this.getRenderingComponent()).setSelectedItem(aValue);
}
}

////COMBOBOX EDITOR
class MyComboEditor extends CustomTableCellEditor implements ActionListener {


public MyComboEditor(JComboBox aRenderingComponent){
super(aRenderingComponent);
aRenderingComponent.addActionListener(this);
}

/* (non-Javadoc)
* @see
tp.table.CustomTableCellRenderer#setValue(java.lang.Object)
*/
public void setValue(Object aValue) {
// System.out.println(" -----------cell EDITOR-- avalue--------");
((JComboBox)this.getEditorComponent()).setSelectedItem(aValue);
}

public void setValue(Object aValue , int row) {
System.out.println(" -----------cell EDITOR----avalue, , row---------");
((JComboBox)this.getEditorComponent()).setSelectedItem(aValue);
}


public Object getCellEditorValue() {
//System.out.println(" cell editor value");

System.out.println(" Any combo value it prints------- > " + ((JComboBox)this.getEditorComponent()).getSelectedItem());
return ((JComboBox)this.getEditorComponent()).getSelectedItem();

}

/* (non-Javadoc)
* @see
java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
*/
public void actionPerformed(ActionEvent e) {
// System.out.println(" Action performed ---------------Source is "+e.getSource());
fireEditingStopped();
}
}
 
I will suppress my every urge. But not this shameless plug:
Two software engineers solve most of the world's problems in one K&R sized book
https://coderanch.com/wiki/718759/books/Building-World-Backyard-Paul-Wheaton
    Bookmark Topic Watch Topic
  • New Topic