Ajudando com esse cógido

Gente, eu tow fazendo uns testes e usei um JOptionPane para entrar com o nome do usuario, e verificasse que nao seria um nome inválido, se fosse, era pra repetir a operação, e se o usuario entrasse o nome ok, dai abriria o frame e tudo mais q criei na classe Menu, mas nao sei como chamaria essa classe, alguem poderia ajeitar esse codigo,ajuda?

Classe Nome


import javax.swing.JFrame;
import javax.swing.JOptionPane;
import java.util.Scanner;
public class Nome {
	
			
                 public static void main(String[] args)

		{
			Nome retorno=new Nome();
			
			retorno.validação();
			
			
		}
		
		
		
		
			public boolean validação(){
			
			String nome="";
			
			while(nome!=null)
			{
			nome=JOptionPane.showInputDialog(null, "Insira seu nome","Bem Vindo", JOptionPane.PLAIN_MESSAGE);
			nome=nome;
		
			if(nome.equals(""))
			{
				JOptionPane.showMessageDialog(null,"Nome inválido. Por favor, tente novamente.","Erro",JOptionPane.ERROR_MESSAGE);
				
			}
			else{
				Menu.Chama();
			return true;
			
			
		}
		
	
		
}
			return false;
	
}
	
	
	
}

Classe Menu


import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;

import javax.swing.BoxLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.UIManager;

public class Menu {

	public static void main(String[] args)
	{
		Menu chamando=new Menu();
		chamando.Chama();
		
	}
	
	public static void Chama(){
	JButao botao=new JButao("Start game ");
	JButao botao2=new JButao("Instruções ");
	JFrame frame=new JFrame();
	JPanel panel=new JPanel();
	Font bigFont=new Font("secif",Font.BOLD,28);
	botao.setFont(bigFont);
	botao.setOpaque(false);
	botao2.setFont(bigFont);
	botao2.setOpaque(false);
	JButton button1=new JButton("Jogar!");
	JButton button2=new JButton("Instruções");
	button1.setFont(bigFont);
	button2.setFont(bigFont);
	panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
	panel.add(botao);
	panel.add(botao2);
	panel.setSize(500,500);
	frame.add(panel);
	frame.add(BorderLayout.EAST,panel);
	frame.getContentPane().add(new JLabel(new ImageIcon("C:\Users\Eduardo\Desktop\open-unreal.jpg")));
	frame.setSize(500,500);
	frame.setVisible(true);
	
	}
	
	
	
	

}

Qualquer ajuda será muito bem vinda!!

Boa noite, 

1º cada programa só deve ter um método main, através dele todos os outros métodos serão chamados
2º o método validação da clase Nome pode ser instanciado como static e ser acessado sem a criação de um objeto.
3º na classe Aluno importei o método estatico do JOptionPOane, evitando o trabalho de sempre colocar JOptionPane.show…

 Esta é a parte que eu digamos "compreendo", as mudanças que fiz foram na classe Nome, qualquer duvida estamos ae.

[code]import static javax.swing.JOptionPane.*;

public class Nome {

public static void main(String[] args) {
	while (true) {//laço infinito
		try{
		String aux = showInputDialog(null, "Insira seu nome",
				"Bem Vindo", PLAIN_MESSAGE);
		if(aux == null)System.exit(0);//se o usuario cancelar o dialogo o programa será encerrado
		validação(aux);
		break;//se o nome for válido o probrama proseguirá e passará pelo break parando o loop 
		}catch(Exception ex){
			showMessageDialog(null, ex.getMessage(), "Erro",
					ERROR_MESSAGE);
		}
	}
}

public static void validação(String nome)throws Exception {
            nome = nome.trim();//impede que o usuario coloque apenas espaços, removendo os espaços do inicio e fim da String

	if (nome.length() == 0)// length() irá contar quantas letras tem a String
		throw new Exception("");//se a exeção for lançada ele voltará para o método main e será tratado pelo catch
	
		Menu.Chama();
}

}[/code]

Valeu, cara, agora ta dando certo. brigadão