[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!