Non esiste un solo modo per fare quei rettangoli colorati. Giusto alcuni scenari che mi vengono in mente:
- un JPanel opaco con il background colorato. Qui serve un MouseListener (mouseClicked() )
- un JLabel o un JButton che visualizza un Icon colorato (la implementazione di un Icon colorato è da fare, non c'è predefinita). Con JButton puoi usare ActionListener mentre con JLabel di nuovo MouseListener.
- un componente custom (estensione di JPanel o JComponent) che disegna direttamente il colore sul componente.
No, ActionListener funziona principalmente con pulsanti (e combobox per la selezione). Con JPanel/JLabel non hai una gestione di ActionListener.