Well, this seemingly simple question requires a complex solution. I'll try to express clearly and succinctly.
The answer in short is that
you should use different TableCellRenderer for each of your 4 columns.
javax.swing.JTable has a method:
void setDefaultRenderer(Class columnClass, TableCellRenderer cellRenderer)
As for the columnClass, you choose the argument according to the class type of data you intend to put in the cells of each of the 4 columns, such as Color.class.
As for cellRenderer, you should use javax.swing.table.DefaultTableCellRenderer, which extends from JLabel, which in turn extends from JComponent.
Well, JComponent has two methods we'll use here:
public boolean hasFocus()
public void setNextFocusableComponent(Component aComopnent)
When you set default cellrenderer for column 1 and 2, override the hasFocus() method by always returning false.
When you set default cellrenderer for column 3 and 4, override the hasFocus() method by always returning true and override the setNextFocusableComponent(Component aComopnent) method by returning the next cell you want to focus next.
I haven't tried this solution yet. If you encounter any problem, please post it immediately.