Hola:
Si no pones layout, el frame por defecto tiene un BorderLayout. En el BorderLayout, tal cual estás añadiendo los componentes, los pone uno encima de otros y además les cambia los setBounds() que estás haciendo, por eso sólo ves el último (todos los demás están debajo).
Si haces
frame.setLayout(null)
entonces ya sí se respetan las posiciones que des a los componentes. De todas formas, layout null es la solución fácil, pero no la elegante.
Java tiene muchos tipos de layout para colocar los componentes sin necesidad de andar dándoles las coordenadas y tamaños. En el enlace tienes un pequeño tutorial.
Se bueno.