5. El punto es es que podras trabajar con una imágen como fondo del botón, revisa el método setIcon() que heredan los JComponents.
6. Primero que todo utiliza la libreria MySQL( gestor de bases de datos) o la que prefieras, cuando tu conexión sea satisfactoria te mostraría como hacerlo, con calma, documentación:
Controlador MySQL.
7. Con un GridBagLayout será suficiente para todos los objetos de tu ventana. No sólo cuentas con el posicionador que te mencioné, que sea la base de mi clase, lo sé... pero... es tedioso.
Tambien trabaja con
BorderLayout, el punto es: los paneles será comodo trabajarlos sólo con BorderLayout (dependiendo de las dimensiones) y la ventana general como te decia con GridBagLayout.
Con pratica empezarás a jugar con ello.
Buena tarde.