Hello I have created a Java program in that I want to display some data in table run time.
Using below function the data displays perfectly, but I can't click on JTable data like check box or text.
Thanks.
My code is:
public void TableDataModel()
{
String[] cols = {"<html>Task<br>Name</html>", "<html>Start<br>Time</html>", "Finished"};
DefaultTableModel model = new DefaultTableModel(data, cols)
{
@Override
public Class<?> getColumnClass(int col)
{
return col == 2 ? Boolean.class : String.class;
}
@Override
public boolean isCellEditable(int row, int column)
{
return column==2 ? true : false;
}
};
JTable table = new JTable(model)
{
@Override
public boolean isCellEditable(int row, int column) {
return column==2 ? true : false;
}
};
table.setFont(new java.awt.Font("Times New Roman", 0, 14));
table.getTableHeader().setFont(new java.awt.Font("Times New Roman", 0, 14));
table.getTableHeader().enable(false);
JCheckBox jcheckBox=new JCheckBox();
TableColumnModel columnModel = table.getColumnModel();
columnModel.getColumn(2).setCellEditor(new DefaultCellEditor(jcheckBox));
jcheckBox.addChangeListener(new ChangeListener()
{
@Override
public void stateChanged(ChangeEvent e)
{
int rowCount = model.getRowCount();
for(int i=0; i<rowCount; i++)
{
Boolean selected = (Boolean)model.getValueAt(i, 2);
if(selected != null && selected)
{
System.out.println("Removed:"+i);
model.removeRow(i);
i--;
}
}
}
});
JScrollPane jScrollpane=new JScrollPane(table);
jScrollpane.setViewportView(table);
this.add(jScrollpane);
jScrollpane.setFont(new java.awt.Font("Times New Roman", 0, 14));
jScrollpane.setBounds(10, 130, 295, 190);
}