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.
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!
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?
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!
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,
importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JOptionPane;publicclassMain{publicstaticvoidmain(String[]args){newTelaPrincipal();}}classTelaPrincipalextendsJFrameimplementsActionListener{JButtonbtnBloquear=newJButton("Bloquear Aplicação");publicTelaPrincipal(){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 senhaactionPerformed((ActionEvent)btnBloquear.getAction());this.add(btnBloquear);this.setVisible(true);}//método que bloqueia a aplicaçãopublicbooleanbloquearAplicacao(){Stringsenha="";senha=(String)JOptionPane.showInputDialog(rootPane,"Senha: (Admin)");if(senha==null){returnfalse;}elseif(senha.equals("Admin")){returntrue;}else{returnfalse;}}//método de tratamento para a açãopublicvoidactionPerformed(ActionEvente){//caso o usuario digite senha inválida, cancele ou feche a dialog//ela volta a se abrir a partir do loop abaixowhile(!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
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: