Hola:
Lo primero no se hace con un JTextField, sino con un
JFormattedTextField. Echale un ojo a la parte de las máscaras.
Aquí tienes un ejemplo de cómo
limitar el número de caracteres en un JTextField.
En cuanto al número de columnas, sirve básicamente para darle tamaño al JTextField. Un JTextField por defecto tiene de tamaño el justo para que se vean todos los caracteres que tiene dentro. Esto es un problema a veces, ya que si visualizas un panel con un JTextField vacio, este se quedará pequeño. Si le dices que tiene 20 columnas, por ejemplo, entonces el JTextField siempre tendrá el tamaño para visualizar 20 caracteres, independientemente de que el JTextField esté vacio, tenga tres caracteres o 200.
Se bueno.