Q:

¿Cómo juntar los datos introducidos en un solo JOptionPane?

¿Cómo tengo que hacer para juntar en un solo JOptionPane todos los valores que introduzco por teclado y no de uno en uno? Estoy empezando a usar las ventanas del JOptionPane y no me terminó de aclarar del todo.
import javax.swing.JOptionPane;
public class NumerosTeclado {

    public static void main(String[] args) {

        int [] dato = new int [10];
        int num = 1;

        for(int i = 0; i<dato.length; i++) {

            dato[i] = Integer.parseInt( JOptionPane.showInputDialog("Introduzca el valor " +num));
            num++;
        }
        num = 1;
        for(int i = 0; i<dato.length; i++) {

            JOptionPane.showMessageDialog(null, "El valor de la posición " + num + " es: " + dato[i]);
            num++;
        }
    }
}

Se me ocurre esta solución, pero imagino que habrá una más corta: 
JOptionPane.showMessageDialog(null, "Los datos introducidos en orden en el array son: \n" + dato[0] + "\n" + dato [1] + "\n" + dato [2]+"\n" +dato [3]+"\n" + dato [4]+"\n" + dato [5]+"\n"+ dato [6]+"\n" + dato [7]+"\n" + dato[8]+"\n" + dato [9], "Numeros Array", JOptionPane.INFORMATION_MESSAGE); 

A:

simplemente concatena los datos leidos a un String cambia tu codigo en el Loop For

num = 1;
for(int i = 0; i<dato.length; i++) {
JOptionPane.showMessageDialog(null, "El valor de la posición " + num + " es: " + dato[i]);
num++;
}

de la siguiente manera:
 String mensaje = "Los Valores Ingresados son:\n";
 for (int i = 0; i<dato.length; i++) {
     mensaje += String.format("valor en %d es %d\n",i+1, dato[i]) ;
 }
 JOptionPane.showMessageDialog(null, mensaje,"Informacion", JOptionPane.INFORMATION_MESSAGE);

otra sugerencia puedes mejorar y evitar usar la variable num si haces esto: 
cambiar: 

dato[i] = Integer.parseInt( JOptionPane.showInputDialog("Introduzca el valor " +num));

por: 
dato[i] = Integer.parseInt(JOptionPane.showInputDialog("Introduzca el valor " + (i+1)));

