Bloquear Aplicação [RESOLVIDO]

17 respostas
dsystem

Boa tarde pessoal,

Estou novamente aqui para pedir ajuda, pois aqui é o unico lugar que encontro respostas para minhas duvidas…

Estou desenvolvendo uma aplicação e eu estou querendo fazer uma tela de bloqueio, onde ela funcionaria da seguinte forma:
Caso o vendedor precise se ausentar, ele chamará uma tela através de um atalho(pelo teclado) e ele deverá inserir seu codigo e senha.Feito isso, ele chamará uma outra tela onde ele irá desbloquear…

Alguem poderia me dar uma luz de como realizar ou ao menos de como começar? Procurei nos tópicos mas não achei.

obrigada

17 Respostas

guisantogui

Bom pode fazer uma flag que controle “true” se esta presente e “false” caso não!

mas, tenta começar depois vai postando as duvidas! :slight_smile:

dsystem

Olá guisantogui,

Obrigada pela ajuda mas…Como estou iniciando no universo de programação, alguns pontos eu ainda não sei…

Poderia me dar uma luz maior sobre essa flag de controle?

:wink:

luciano2

Qual a tecnologia que essa aplicação utiliza? É swing ?

dsystem

Exatamente luciano

luciano2

Usa o KeyListener da sua tela para ver quando o atalho foi pressiona e bloqueia a tela.

é melhor chamar a tela para bloquear, e pedir login e senha apenas para desbloquear.

dsystem

Luciano, desculpa talvez minha ignorância de conhecimento mas será que poderia me mostrar um exemplo?

dsystem

Pessoal, alguem pode me ajudar?
Não estou conseguindo! :cry:

manolimars

uma idéia seria voce fazer isso com Dialog

ao pressionar um determinado atalho.: Ex. Alt+L

ele abrirá uma dialog pedindo usuario e senha

se for digitado corretamente ele simplesmente fecha a dialog,

caso contrario abre novamente a dialog.

esqueci de avisar, para controlar eventos de teclado pode usar key Listener

dsystem

manolimars

Deixa eu ver se entendi. Seria mais ou menos assim: Eu no caso apertei por exemplo alt+L ai irá aparecer o Dialog,aparecendo o Dialog ele já estaria bloqueado e só desbloquearia se eu digitasse a senha…É isso?

manolimars

exato, quando uma dialog é aberta, toda a aplicação fica bloqueada até que a mesma seja fechada,
no seu caso, quando ela for fechada ela irá fazer uma validação de usuario e senha.

Obs.: se vc for utilizar Dialogs feitas por voce mesmo, não esqueça de seta-la como modal this.setModal(true);

manolimars

dsystem, fiz um breve exemplo de aplicação sendo bloqueada por clique de um botão,
para fazer com teclas de atalho não muda muito,

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;


public class Main
{
    public static void main(String[] args)
    {
        new TelaPrincipal();
    }

}

class TelaPrincipal extends JFrame implements ActionListener
{
    JButton btnBloquear = new JButton("Bloquear Aplicação");

    public TelaPrincipal()
    {
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        this.setSize(500, 400);
        this.setLayout(null);
        this.setLocationRelativeTo(null);

        btnBloquear.setBounds(10,10,200,25);
        btnBloquear.addActionListener(this);

        //Aqui só vai abrir a aplicação caso o usuario digite a senha
        actionPerformed((ActionEvent) btnBloquear.getAction());

        this.add(btnBloquear);

        this.setVisible(true);
    }

    //método que bloqueia a aplicação
    public boolean bloquearAplicacao()
    {
        String senha = "";
        senha = (String)JOptionPane.showInputDialog(rootPane, "Senha: (Admin)");

        if(senha == null)
        {
            return false;
        }
        else if(senha.equals("Admin"))
        {
            return true;
        }
        else
        {
            return false;
        }
    }

    //método de tratamento para a ação
    public void actionPerformed(ActionEvent e)
    {
        //caso o usuario digite senha inválida, cancele ou feche a dialog
        //ela volta a se abrir a partir do loop abaixo
        while(!bloquearAplicacao()){}
    }
}
dsystem

manolimars Muiiiiiiiiiiiiiiito legal
Eu nunca que ia imaginar…
Obrigada…
vou dar uma estudada em cima do seu código…entender bem o funcionamento e aplicar no meu…
Afinal, se ficar só copiando nunca que aprendo…mas obrigada…Deu pra eu começar a entender e pensar em como aplicar no meu sistema
:wink:

dsystem

Só uma ultima Dúvida manolimars; é possivel, ao invés de eu solicitar ao usuário que digite através do JOptionPane.showInputMessage fazer um Frame onde o usuário deverá digitar a senha por exemplo de vendedor e gerente ai sim a aplicação é liberada??? Pq com o JOption eu consigo de boa, mas quando tento fazer desta forma que te falei…Não consigo… A aplicação trava.
Te como?

manolimars

ao invés do showInputMessage voce poderia fazer com Dialog,
com JFrame não será possível pois não temos o método “modal” nele

o que o método modal faz:
“bloqueia” a janela pai, até que a janela filha seja fechada

dsystem

Entendi…
É… O que ainda não entendi muito bem é esse método modal…
Mas vou dar mais uma estudada pra ver se consigo entender bem.
No caso o método modal da aplicação que voce fez é o bloquearAplicacao() ?
Desculpa perguntar tanto :?

dsystem

Só pra voce ter uma idéia…
Fiz o seguinte.

o Dialog1 chama o Dialog através do botão

private void btnBloquearActionPerformed(java.awt.event.ActionEvent evt) { Dialog2 d = new Dialog2(null,true); d.setVisible(true); }
Quando o Dialog2 abre tem a tela pra ele inserir a senha, se inserir correto ele fecha o Dialog2 e deixa o Dialog1 visivel…
Fiz o seguinte:

public Dialog2(java.awt.Frame parent, boolean modal) {
        super(parent, modal);
        initComponents();
        
        this.setModal(true);

    }

 public boolean bloquearAplicacao(){
      
        if(txtSenha.equals("teste")){

            return true;
        }
        else{
            return false;
        }
    }

    public void actionPerformed(ActionEvent e){
        while(!bloquearAplicacao()){
                   }
    }

Não funcionou… Mas não entendo como deixar correto =/

dsystem

:wink:CONSEGUIIIIIIIIIIIIIIII
=]

Fiz um outro teste… Usando o Dialog e conseguiiii …Alem de conseguir pude entender como funciona…

Obrigada pela ajudaaaaaaaa!!

Criado 30 de abril de 2010
Ultima resposta 7 de mai. de 2010
Respostas 17
Participantes 4