Varios frames e manipulando o Keylistener

No meu programa tenho 2 frames. Um principal, que eh uma tela que executa o jogo e um outro que eh um cadastro do jogador.
O jogo inicia com uma tela principal e para iniciar Possui um menu, ao clicar no meu quadro, o de cadastro torna-se visível. Ao clicar em um botao desse quadro de cadastro fica falso o setVisible. No entanto, depois que uma janelinha alguns o jogo comeca mas nao vejo o jogo em andamento no Painel. Parece que o repaint () “funciona” Nem o KeyListener obedece aos meus comandos, tambem, nao consigo clicar nos menus do quadro principal nem fechar esse quadro.

[code]
public Frame () (
super ( “Tetris”);

Barra = new JMenuBar ();
menuPontuacao = new JMenu ( “Pontuação”); menuDificuldade = new JMenu ( “Mudar Dificuldade”); menuInicio = new JMenu ( “Início”);

playItem = new JMenuItem ( “Iniciar Novo Jogo”); playItem.addActionListener (this);
sairItem = new JMenuItem ( “Sair”); sairItem.addActionListener (this);
ResetItem = new JMenuItem ( “Reset”); resetItem.addActionListener (this); resetItem.setEnabled (false);
pauseItem = new JMenuItem ( “Pause”); pauseItem.addActionListener (this); pauseItem.setEnabled (false);
despausarItem = new JMenuItem ( “Voltar ao jogo”); despausarItem.addActionListener (this); despausarItem.setEnabled (false);

playItem (menuInicio.add); menuInicio.add (ResetItem); menuInicio.add (pauseItem); menuInicio.add (despausarItem); menuInicio.addSeparator (); sairItem menuInicio.add ();
menuInicio (barra.add); barra.add (menuPontuacao); barra.add (menuDificuldade);

sairItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_Q, ActionEvent.ALT_MASK));
playItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_N, ActionEvent.ALT_MASK));
resetItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_R, ActionEvent.ALT_MASK));
despausarItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_V, ActionEvent.ALT_MASK));
pauseItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_P, ActionEvent.ALT_MASK));
Super.setJMenuBar Barra ();

telaNome = new JFrame ( “Novo Jogo”);
telaNome.setSize (250.250);
painel = new JPanel (); GridLayout painel.setLayout (Novo (4,1));
botao1 = new JButton ( “ir para o jogo”); botao1.addActionListener (this);
telaNome.setLocationRelativeTo (null);
telaNome.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
msgNome = new JLabel ( “Nome:”);
campoNome = new TextField (5);
telaNome.addWindowListener (this);
msgNome (painel.add); painel.add campoNome (); painel.add (botao1);
Painel telaNome.add ();
telaNome.addKeyListener (this);

Dimensao Dimensão = Toolkit.getDefaultToolkit (). GetScreenSize ();
setSize (535.675);
/ / GetContentPane (). setBackground (Color.BLACK);
setLocation ((dimensao.width-this.getSize (). largura) / 2, (dimensao.height-this.getSize (). height) / 2);
setResizable (false);
setUndecorated (true);
getRootPane (). setWindowDecorationStyle (JRootPane.FRAME);
setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
setBackground (Color.blue);
setVisible (true);
add (desenha);
addKeyListener (this);

)

/ / ActionListener:

public void actionPerformed (ActionEvent e) (
if (e.getSource () == playItem) (
System.out.println ( “play”);
pauseItem.setEnabled (true);
playItem.setEnabled (false);
telaNome.setVisible (true);
resetItem.setEnabled (true);

) Else if (e.getSource () == ResetItem) (
playItem.setEnabled (true);
pauseItem.setEnabled (false);
start = false;

/ / Reseta o jogo;

) Else if (e.getSource () == botao1) (
telaNome.setVisible (false);
nome = campoNome.getText (); / / botao que inicia o jogo
/ / O quadro de cadastro não fica mais visivel
System.out.println (nome);
start = true;
iniciaJogo ();

) Else if (e.getSource () == sairItem) (
System.exit (0);
) Else if (e.getSource () == pauseItem) (
pauseItem.setEnabled (false);
despausarItem.setEnabled (true);
) Else if (e.getSource () == despausarItem) (
pauseItem.setEnabled (true);
despausarItem.setEnabled (false);
)

[/ Code]

Por favor, arrume as tags code do seu post. Tudo minúsculo e sem espaço:

seu código aqui

Onde o loop do jogo ocorre?