Ma ... è proprio così la logica di BorderLayout! La parte CENTER si prende tutto lo spazio del contenitore che ha BorderLayout, a meno dello spazio eventualmente occupato da un componente in NORTH e/o SOUTH e/o EAST e/o WEST.
Non ho ben capito cosa intendi ... alla possibilità di gestire più pulsanti? Alla possibilità di implementare più ActionListener?
La questione è ampia, nel senso che puoi dare una implementazione specifica di ActionListener a ciascun pulsante, oppure ne puoi avere una unica (come nel tuo caso, dato che il ActionListener l'hai implementato a livello di classe principale del frame) e poi distinguere il pulsante che ha originato l'evento.
Per distinguere il pulsante si può anche usare (specialmente per certi scenari particolari) il "action command". Ma in genere, ed è quello che faccio sovente anche io, è più semplice verificare per == di riferimento il "source" dell'evento:
Se è stato button1 a generare l'evento, il "source" dell'evento è esattamente quello stesso oggetto JButton.codice:private JButton button1; private JButton button2; ..... public void actionPerformed(ActionEvent e) { Object source = e.getSource(); if (source == button1) { // ..... } else if (source == button2) { // ..... } }