Criar uma JFrame que valida ações em outra JFrame

Olá pessoal, coisas de noob pr vc´s ajudarem. Seguinte:
Quero criar uma Jframe com opções OK e Cancela, para confirmar ações de inclusão, exclusão e outras ações para garantir que o usuario realmente deseja executar a ação indicada. Deve ser um frame generica so que eu não estou encontrando o melhor meio de implementar.

Criei uma variavel com valor default “false” que poderia ser mudada caso o usuario clicasse em OK, mas ela sempre passa o valor defalt imediato sem esperar pela minha interação.
Depois tentei passar o método como parametro, mas vi que seria impossível.

Espera ajuda,

Grato!

Seria somente a caixa de diálogo padrão para confirmação?

Se for, pode usar o option pane, que já vem pronta:

int opcao = JOptionPane.showConfirmDialog(this ,"Confirma a operação?", "Confirmação", JOptionPane.YES_NO_OPTION); if (opcao == JOptionPane.YES_OPTION) { // Confirmou . . . } else { // Não confirmou . . . }
Mas se quiser fazer uma janela personalizada, use JDialog no lugar do JFrame.

Boa noite!

Tem um jeito melhor de vc fazer isso cara.
No pacote swing, existe uma classe q chama JOptionPane, ela tem várias opções de caixa de mensagem de diálogo, tanto entrada de dados ou confirmação, como é o seu caso.

É mais ou menos algo assim:

		JOptionPane.showConfirmDialog(null, "Tem certeza que deseja gravar?")

Espero ter ajudado.
Guri.

[quote=rotteny]Olá pessoal, coisas de noob pr vc´s ajudarem. Seguinte:
Quero criar uma Jframe com opções OK e Cancela, para confirmar ações de inclusão, exclusão e outras ações para garantir que o usuario realmente deseja executar a ação indicada. Deve ser um frame generica so que eu não estou encontrando o melhor meio de implementar.

Criei uma variavel com valor default “false” que poderia ser mudada caso o usuario clicasse em OK, mas ela sempre passa o valor defalt imediato sem esperar pela minha interação.
Depois tentei passar o método como parametro, mas vi que seria impossível.

Espera ajuda,

Grato![/quote]

Oi, cara!
Tudo bem?
Bom, eu resolvo esse problema da seguinte maneira…

Eu crio, em minha tela, cinco botões. Vamos dividí-los em botões de ação e botões de confirmação.
Botões de ação: Adicionar, Editar, Remover
Botões de confirmação: Confirmar e Cancelar

Quando os botões de ação estão habilitados, os botões de confirmação não, e vice-versa. Para o controle disso, uso um método assim:

public void habilitarAcoes( Boolean habilitar ) {

    buttonAdicionar.setEnabled( habilitar );
    buttonEditar.setEnabled( habilitar );
    buttonRemover.setEnable( habilitar );

    buttonConfirmar.setEnabled( !habilitar );
    buttonCancelar.setEnabled( !habilitar );
}

Tá… Se eu clico em Adicionar, por exemplo, aparece o painel com os dados para cadastro. Eu faço isso quando tenho as tanto uma tabela para apresentação dos dados quanto o painel de cadastro/edição no mesmo JFrame.

public class AdicionarHandler implements ActionListener {

    public void actionPerformed( ActionEvent e ) {

        panelCadastro.setVisible( true );  // mostro o JPanel
        habilitarAcoes( false ); // botões de Confirmar e Cancelar habilitados
    }
}

Daí, eu vou e preencho os dados bonitinhos no JPanel. Quando o usuário clicar em Confirmar…

public class ConfirmarHandler implements ActionListener {

    public void actionPerformed( ActionEvent e ) {

        UsuarioController controllerUsuario = new UsuarioController();
        Usuario usuario = new Usuario();

        usuario.setNome( textNome.getText() );
        usuario.setEmail( textEmail.getText() );
 
        controllerUsuario.adicionarUsuario( usuario ); 
    }
}

Caso contrário, não faz nada, limpa e esconde o JPanel, e boa!
O que acha dessa solução?

Abraços!

Poxa, vlw mesmo pessoal. Sabia que tinha um jeito facild e fazer, mas não consegui achar. Obrigado pelo apoio!

Juntei a resposta do esdmorais a do Eric e deu o resultado que eu queria!

ClienteDAO dao = new ClienteDAO();
int opcao = JOptionPane.showConfirmDialog(null, "Confirma a exclusão do Cliente?"); 
if (opcao == JOptionPane.YES_OPTION){
  dao.removeCliente(Integer.parseInt(obj.toString()));
  new ShowMenssagem("Cliente excluido com sucesso!");
}

Agora só mais uma coisas:

  • Tem como eu retirar o botão cancelar que tem a mesma função do “Não” (é so pra ficar mais agradavel), se não não tem problema, ja ta otimo assim.
Usando este construtor, no terceiro argumento está sendo especificado o título da janela, e no quarto os botões.

Usando este construtor, no terceiro argumento está sendo especificado o título da janela, e no quarto os botões.