за предложение @aperkins, это то, что я в итоге сделал в TableCellRenderer, похоже, работает хорошо:
final private JPanel nodeRenderer = new JPanel();
final private JLabel label = new JLabel();
final private JCheckBox check = new JCheckBox();
...
// in constructor:
final Insets inset0=new Insets(0,0,0,0);
this.check.setMargin(inset0);
this.nodeRenderer.setLayout(new BorderLayout());
this.nodeRenderer.add(this.check, BorderLayout.WEST);
this.nodeRenderer.add(this.label, BorderLayout.CENTER);
Ключи для избавления от ненужного пространства на полях, кажется, (а) вызывают JCheckBox.setMargin (), чтобы уменьшить поле для флажка, и (б) используют BorderLayout для JPanel.