codice:
tuoBottone.setOpaque(false);
tuoBottone.setContentAreaFilled(false);
se non vuoi nemmeno il bordo
codice:
tuoBottone.setBorderPainted(false);
Ma aggiungendo quest'ultimo, potresti "sviare" l'utilizzatore, perché non si capisce più tanto bene che si tratta di un bottone... a meno che l'immagine di sfondo non abbia il bordo e/o che all'hovering vi sia attaccata qualche modifica visuale (tipo un cambio di sfondo)