I'm trying to create a simple To-Do list Java application connected to MS Access and I used JTable and DefaultTableModel to display the list. I want to mark completed tasks by changing its color when I click on a button. I have a boolean field named 'completed' that serves as indicator.
String header[] = {"priority", "task"};
String data[][];
DefaultTableModel model = new DefaultTableModel(data, header);
JTable table = new JTable(model);
// to be replaced with code that affects only specific cells not the whole table
table.setFont(customFont);
I already have a Font object that I called customFont, which is ready to be applied. My question is, how do I apply it only to specific cells where completed==true.
Sample codes would be much appreciated.
easiest of ways is look at prepareRenderer(), best of all is @camickr Table Row Rendering
JTable
is View, based on TableModel
, in most cases you have to convert the view against model converXxxToXxx from inside of prepareRenderer
or getTableCellRendererComponent
, because JTable
could be sorted of filtered
methods
code
public Component prepareRenderer(TableCellRenderer renderer, int row, int column) {
Component c = super.prepareRenderer(renderer, row, column);
returns access to the specific cell in JTable - (TableCellRenderer renderer, int row, int column)