I've done something like this many times. You want each row of the table to be a JPanel which is the parent of that row's components. And the "table" itself should actually be a JPanel, not a JTable,...