Bom dia,
Eu pesquisei no forum, segui varios exemplos e não consegui fazer dar certo…
Meu problema é o seguinte, ao fazer logon, quero que, se o usuario ou a senha estiverem errados apareça a mensagem “Usuario/Senha Invalidos” em um jlabel.
Mas que depois de uns 2 segundos suma, mas se eu coloco de um jeito não aparece, e se eu mudo o codigo, não some…
Estou postando meu codigo.
[code]
private void LogarSistema() {
Database Logon = new Database();
MenuPrincipal Liberar = new MenuPrincipal();
Acesso = Logon.getUserPrivilegios(txUsuario.getText(), txSenha.getText());
Privilegio = Logon.setPrivilegioUser();
if (Acesso == true) {
this.dispose();
} else {
lbInvalido.setText("Usuário / Senha Inválidos");
try {
Thread.sleep(2000);
lbInvalido.setText("");
} catch (InterruptedException ex) {
Logger.getLogger(Login.class.getName()).log(Level.SEVERE, null, ex);
}
}
}[/code]
Tenta dar um repaint(). Outro problema é que seu sistema vai ficar parado enquanto a Thread dorme, o ideal seria você Timer ou Thread
Fiz um exemplo simples aqui.
public class TesteTimer extends JFrame{
private String s = "AAA";
private Label lbl = new Label(s);
public TesteJframeRepaint() {
setSize(200, 200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
add(lbl);
Timer timer = new Timer(1000, new ActionListener() {
public void actionPerformed(ActionEvent e) {
s = "AAA".equals(s) ? "BBB" : "AAA";
lbl.setText(s);
}
});
timer.start();
setVisible(true);
}
public static void main(String[] args) {
new TesteTimer();
}
}
Esta funcionando desse modo que voce me passou, o unico problema agora é que ele não para, e se eu coloco um timer.stop(); é que ele nao inicia…
como resolvo isso?
[quote=magostta]Fiz um exemplo simples aqui.
[code]
public class TesteTimer extends JFrame{
private String s = "AAA";
private Label lbl = new Label(s);
public TesteJframeRepaint() {
setSize(200, 200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
add(lbl);
Timer timer = new Timer(1000, new ActionListener() {
public void actionPerformed(ActionEvent e) {
s = "AAA".equals(s) ? "BBB" : "AAA";
lbl.setText(s);
}
});
timer.start();
setVisible(true);
}
public static void main(String[] args) {
new TesteTimer();
}
}
[/code][/quote]
Esse codigo nao esta compilando.
Depois de muitas tentativas e bater com a cabeça na parede consegui resolver.
Não ei se do modo mais correto, mas foi o que funcionou aqui…
to postando meu metodo se alguem quiser ver.
[code]private void LogarSistema() {
Database Logon = new Database();
MenuPrincipal Liberar = new MenuPrincipal();
TimerTask msg = new TimerTask() {
@Override
public void run() {
lbInvalido.setText("");
}
};
Timer aparecer = new Timer();
Acesso = Logon.getUserPrivilegios(txUsuario.getText(), txSenha.getText());
Privilegio = Logon.setPrivilegioUser();
if (Acesso == true) {
this.dispose();
} else {
lbInvalido.setText("Usuário / Senha Inválidos");
aparecer.schedule(msg, 3500);
}[/code]