Nota, non sono sicuro se è quanto vuoi e se piacerà ....
a) Estendi JTable (anche "al volo" con una anonymous inner class) in modo da ridefinire il suo getPreferredScrollableViewportSize() così:
public Dimension getPreferredScrollableViewportSize() {
return getPreferredSize();
}
b) Estendi JScrollPane (stesso discorso come sopra) in modo da ridefinire il suo getMinimumSize() così:
public Dimension getMinimumSize() {
return getPreferredSize();
}
c) Aggiungi il tuo scrollpane con un GridBagConstraints così:
GridBagConstraints c = new GridBagConstraints();
c.weightx = 1;
c.weighty = 1;
getContentPane().add(tuoScrollPane, c);
Chiaramente il contentPane deve avere il GridBagLayout.
Il getMinimumSize ridefinito del JScrollPane può sembrare "strano" ma la motivazione c'è ...
Anche i weightx/weighty hanno una motivazione ben precisa.