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