EditableTable.java
import javax.swing.DefaultCellEditor;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableModel;
import java.awt.*;
public class EditableTable extends JFrame
{
EditableTable()
{
super("Editable Table");
setSize(500,500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container c=getContentPane();
String[] columnTitles = { "First Name", "Last Name", "weight", "Qualification", "age(18+)" };
Object[][] dataEntries = {
{ "Rahul", "Jain", new Integer(50), "B-tech", new Boolean(false) },
{ "Ruturaj", "Kokate", new Integer(80), "PG", new Boolean(true) },
{ "Akshay ", "Shinde", new Integer(80), "Msc", new Boolean(true) },
{ "Gaurav", "Deshpande", new Integer(80), "Bsc", new Boolean(true) },
{ "Amey", "Barve", new Integer(80), "PG", new Boolean(true) },
{ "Rahil", "Arai", new Integer(70), "Gratuate", new Boolean(false) },
{ "Manik", "Pawar", new Integer(55), "12TH", new Boolean(true) }, };
TableModel model = new EditableTableModel(columnTitles, dataEntries);
JTable table = new JTable(model);
table.createDefaultColumnsFromModel();
String[] Education = { "PG","Msc", "B-Tech,","Bsc", "12th", "10th" };
JComboBox comboBox = new JComboBox(Education);
table.getColumnModel().getColumn(3).setCellEditor(new DefaultCellEditor(comboBox));
c.add(new JScrollPane(table));
setVisible(true);
}
public static void main(String[] a)
{
new EditableTable();
}
}
class EditableTableModel extends AbstractTableModel
{
String[] columnTitles;
Object[][] dataEntries;
int rowCount;
public EditableTableModel(String[] columnTitles, Object[][] dataEntries)
{
this.columnTitles = columnTitles;
this.dataEntries = dataEntries;
}
public int getRowCount()
{
return dataEntries.length;
}
public int getColumnCount()
{
return columnTitles.length;
}
public Object getValueAt(int row, int column)
{
return dataEntries[row][column];
}
public String getColumnName(int column)
{
return columnTitles[column];
}
public Class getColumnClass(int column)
{
return getValueAt(0, column).getClass();
}
public boolean isCellEditable(int row, int column)
{
return true;
}
public void setValueAt(Object value, int row, int column)
{
dataEntries[row][column] = value;
}
}
---------------Output-------------------