L'obiettivo mi è chiaro, c'è solo una cosa che non hai descritto: hai un unico ArrayList, giusto? Come differenzi i prodotti per uomo e per donna? Contiene oggetti di una tua classe es. Prodotto che contiene la indicazione (tramite boolean, enum, quello che vuoi) di uomo e/o donna?
Io direi che va bene. Poi l'aspetto estetico è un altro discorso, cioè come disponi i due checkbox in NORTH e come visualizzi gli N checkbox in CENTER ... beh, ci sono diverse possibilità.
Per i due checkbox in NORTH la prima cosa da fare, ovvia, è registrare un ActionListener per ricevere notifica che sono stati cliccati. Il listener può anche essere unico, non interessa molto distinguere l'evento in sé. Indipendentemente da quale dei due clicchi, devi comunque usare isSelected() per avere il flag di "selezionato" per entrambi. Con questi due flag true/false dovrai fare un "filtro" sulla tua lista per avere l'insieme dei prodotti da visualizzare.
Come presentare l'elenco dei prodotti si può fare in diversi modi ma se (immagino ...) per ogni prodotto vuoi visualizzare un checkbox, una descrizione, magari il prezzo e magari altro (insomma un "record" di informazioni), la prima cosa che mi viene in mente è una tabella, ovvero JTable.
Prova a valutare quanto ho detto, se hai altri dubbi, chiedi pure.