Abrir um programa/Instanciar só uma vez?

E o seguinte fiz uma aplicação com varios botões, nesses botões são chamadas outras telas, como faço para ao entrar em um botão somente uma vez, tipo se a tela estiver aberta e eu entrar no botão outra vez ele aparece uma mensagem de erro, e ao fechar essa tela aberta ele abrir normalmente.

Resumindo instanciar somente uma vez o objeto que esta no botão!!

Deu pra entender??!!
Me ajudem se poder !!

FALOU!!!

tenta isso:

qdo clica no botao, então faz nomeBotao.setEnabled( false ); assim qdo clica no botao e abra a tela o botao fica inutilizado

ao fechar a tela, faz nomeBotao.setEnabled( true ); --> o botao agora esta utilizavel

Código

JButton CadastroDvd = new JButton(“Cadastro de Dvd(s)”);

CadastroClientes.addActionListener(new ActionListener()
                {
      	  public void actionPerformed(ActionEvent evt)
      	  {
      	  [color="red"]CadastroClientes.setEnabled(false);[/color]          	  

AplicacaoClientes frm = new AplicacaoClientes();
frm.setBounds(4,58,790,537);
frm.setVisible(true);
[color=“darkred”]CadastroClientes.setEnabled(true);[/color]
}
});

Fiz desse jeito mas ta dando erro nessas linhas em vermelho, dizendo que tem que colocar o botão como uma constante, quando aperto pra corrigir o erro o JButton fica assim.

final JButton CadastroDvd = new JButton(“Cadastro de Dvd(s)”);

Executo o programa e não acontece nada ao apertar o botão fica tudo do jeito que tava, ele não desabilita ao entrar.

Outra coisa do jeito que eu botei ele não vai desabilitar o botão e depois habilitar de novo o que vai dar no mesmo ???

use um JtoogleButton

ou entaum utilize o design pattern singleton

Como eu uso esse botão JtoogleButton ??
Como ele funciona ??

SERIA ASSIM

Código

JToggleButton CadastroDvd = new JToggleButton(“Cadastro de Dvd(s)”);

//ação do botão.

CadastroClientes.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent evt)
{
CadastroClientes.setEnabled(false);
AplicacaoClientes frm = new AplicacaoClientes();
frm.setBounds(4,58,790,537);
frm.setVisible(true);
CadastroClientes.setEnabled(true);
}
});

Executei e ficou a mesma coisa !!!

E esse outro design pattern singleton como utilizo ?!!