hello once again.........
here is the code for those who want to help me......
//------------------------------------------------------------
import javax.swing.*;
import java.awt.*;
import java.awt.geom.*;
import java.awt.event.*;
import javax.swing.table.*;
public class JButtonInJTable extends JFrame implements ActionListener
{
JTable table;
DefaultTableModel dModel;
DefaultTableModel dm;
/** Creates new TryLegendJTable */
public JButtonInJTable ()
{
JPanel panel = new JPanel();
panel.add(new JButton("aaa"));
Object [][] data = {{ new JButton("A"),"aaa"},{new JButton("B"),"bbb"},{new JButton("C"),"ccc"},{new JButton("D"),"ddd"},{new JButton("E"),"eee"}};
Object [] value ={"label1","label2"};
dModel = new DefaultTableModel(data,value);
table = new JTable(dModel);
table.setPreferredScrollableViewportSize(new Dimension(500, 80));
table.setRowSelectionAllowed(true);
JButtonRenderer jbr = new JButtonRenderer();
table.getColumn("label1").setCellRenderer(jbr);
//table.getColumn("label1").setCellEditor(new JButtonEditor(new JButton()));
JScrollPane scrollPane = new JScrollPane(table);
JButton addRow = new JButton("Add Row"); addRow.addActionListener(this);
JButton removeRow = new JButton("Remove Row"); removeRow.addActionListener(this);
JPanel centerPanel = new JPanel();
JPanel southPanel = new JPanel();
centerPanel.add(scrollPane);
southPanel.add(addRow);
southPanel.add(removeRow);
this.getContentPane().add(centerPanel,BorderLayout.CENTER);
this.getContentPane().add(southPanel,BorderLayout.SOUTH);
this.setVisible(true);
this.setBounds(100,100,200,200);
pack();
}
public static void main(
String [] a)
{
new TryLegendJTable();
}
public void actionPerformed(java.awt.event.ActionEvent event)
{
if(event.getActionCommand()=="Add Row")
{
Object[] a = {new JButton("click.."),"new Row"};
dModel.addRow(a);
}
else if(event.getActionCommand()=="Remove Row")
{
try{
dModel.removeRow(table.getSelectedRow());
}catch(Exception e)
{
dModel.removeRow(0);
}
}
else
{
System.out.println("other event");
}
}
class JButtonRenderer implements TableCellRenderer
{
public Component getTableCellRendererComponent(JTable table,
Object value,
boolean isSelected,
boolean hasFocus,
int row,
int column)
{
if (value==null) return null;
System.out.println("inside getTableCellRendererComponent");
return (Component)value;
}
}
}
////------------------------------------------------------------
the JButtons are visible but if i double click, Button disappers and it shows text in which all attributes of that particular button is shown. ........how to avoid this?..........
.........waiting for help........Ajit