pessoal, pegunta assim meio idiota, mas nao estou conseguindo fazer… como eu uso metodo focus() para atribuir o focu a um campo?
valeu.
GAbriel
pessoal, pegunta assim meio idiota, mas nao estou conseguindo fazer… como eu uso metodo focus() para atribuir o focu a um campo?
valeu.
GAbriel
Olha não sei bem oq vc quer se é so obter o foco ja ti adianto vc terá que implementar a Interface FocusListener como se trata de interface terá que colocar todos os metedos dela q são somente dois:
public void focusGained(FocusEvent f)
public void focusLost(FocusEvent f)
mas se tiver mais duvidas diga oq vc ta querendo fazer a ti ajudo
Olá Ricardo,
Bem, o que eu queria era o seguinte, tenho uma caixa de texto e digito uma informação errada, entao dou uma mensagem de erro e o campo texto volta a receber o foco ou se estiver ok o focu passa para o proximo campo
valeu
GAbriel
Ola Gabriel,
seuCampo.requestFocus();
falow;
ta um exemplos de como funciona o focus basta implementar sua logica
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Login extends JDialog implements ActionListener, FocusListener
{
private Container c;
private JPanel p;
private JLabel name,senha;
private JTextField usuario;
private JPasswordField password;
private JButton botok,botlimpar;
private JSeparator s;
private int erro;
public void actionPerformed(ActionEvent e)
{
//Condiçao se clicar no botao "botok" dispara o Evento onde vai comparar se a senha informada esta correta
//para entrar na Classe DeskTop
if(e.getSource()==botok)
{
if(String.valueOf(password.getPassword()).equals("123"))
{
DeskTop t= new DeskTop();
t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(false);
}
//se a senha estiver incorreta retorna uma mensagens de aviso
else
{
JOptionPane.showMessageDialog(null,"Usuario ou Senha Incorreta","aviso",JOptionPane.INFORMATION_MESSAGE);
password.setText("");//limpa a caixa de texto senha
password.requestFocus();//foca na caixa de texto senha se a senha for informada errada
botok.setEnabled(false);//desabilita o botao ok apos constar erro se senha
erro++;//contador que contara qtas vezes foi informada senha incorreta
}
//condiçao se o erro for notado 2 vezes dará uma mensagem alertando que que se errar de novo vai encerrar
if(erro==2)
{
JOptionPane.showMessageDialog(null,"Se vc digitar Usuario e Senha invalidos novamente!"+"\n"+"O sistema vai encerrar o programa!","aviso",JOptionPane.ERROR_MESSAGE);
}
//se informou 3 vezes será encerrado
if(erro==3)
{
JOptionPane.showMessageDialog(null,"Voce Informou Usuario e Senha errado tres vezes O sistema vai encerrar o programa!","aviso",JOptionPane.ERROR_MESSAGE);
System.exit(0);//sair
}
}
//se Clicar no botão "botlimpar" limpara todas as caixas de texto e desabilitando o botao OK
if(e.getSource()==botlimpar)
{
usuario.setText("");//limpa a caixa de texto usuario
password.setText("");//limpa a caixa de texto da senha
usuario.requestFocus();// depois que limpa e foca na caixa de texto usuario
botok.setEnabled(false);//desabilita o botao
}
}
//metodo ganhar foco da classe FocusListener
//nao usaremos neste caso mas teremos que implementar ele, pois se trata de um Interface
//mas nao precisamos implementar nada
public void focusGained(FocusEvent f)
{
}
//metodo perder foco da classe FocusListener
//implementamos, pois queremos que ao sair das caixas de texto ele faca uma verificacao e faca algumas
//acoes caso as verificacoes sejam corretas
public void focusLost(FocusEvent f)
{
//Se o texto da caixa de texto usuario for maior que zero e o texto da
//caixa de senha for maior que zero faça
if((usuario.getText().length()>0)&&(String.valueOf(password.getPassword()).length()>0))
{
botok.setEnabled(true);//habilita o botao OK
botok.requestFocus();//foca no botao OK
}
}
//Construtor
public Login()
{
setSize(410,170);//dando tamanho ao frame na tela
setLocation(300,200);//dando posiçao ao frame tela
c=getContentPane();//atribuiçao para o container
c.setLayout(null);//layout nulo
setResizable(false);//metodo que naum permite a maximizaçao do frame
c.setBackground(new Color(212,208,200));//atribuindo cor ao container
//criação de um painel ao container
p=new JPanel();
p.setLayout(null);//layout nullo
p.setBounds(0,0,310,150);//posiçao do painel np container
p.setBackground(new Color(212,208,200));//cor atribuida ao painel
name=new JLabel("Username:");//criando um rotulo
name.setBounds(27,45,70,10);//posiçao onde ficara esse nome
p.add(name);//adicionado esse Label ao painel que se encontra no container
senha=new JLabel("Password:");//criando um rotulo
senha.setBounds(27,85,70,10);//posiçao onde ficara esse nome
p.add(senha);//adicionado esse Label ao painel que se encontra no container
usuario=new JTextField();//criando um caixa de texto
usuario.setBounds(90,40,160,20);//posiçao onde ficara essa caixa de texto
usuario.requestFocus();//dando foco na caixa de texto usuario ao iniciar o programa
usuario.addFocusListener(this);//adicionado o evento FocusListener
p.add(usuario);//adicionado a caixa de texto ao painel que se encontra no container
password=new JPasswordField();//criando um caixa de texto
password.setBounds(90,80,160,20);//posiçao onde ficara essa caixa de texto
password.setEchoChar('*');//dando uma mascara utilizando um caracter qdo digitar senha
password.addFocusListener(this);//adicionado o evento FocusListener
p.add(password);//adicionado a caixa de texto ao painel que se encontra no container
//adicionando separadores no container
s=new JSeparator(1);
s.setBounds(10,10,10,125);
p.add(s);
s=new JSeparator(1);
s.setBounds(300,10,10,125);
p.add(s);
s=new JSeparator(0);
s.setBounds(10,9,290,10);
p.add(s);
s=new JSeparator(0);
s.setBounds(10,135,290,10);
p.add(s);
c.add(p);
botok=new JButton("OK");//criando um botão OK
botok.setBounds(320,25,75,25);//posição onde ficara o botao
botok.setBackground(new Color(212,208,200));//atribuindo cor ao botao
botok.setMnemonic(KeyEvent.VK_O);//criando teclas de atalho
botok.setEnabled(false);//desabilitando o botao
botok.addActionListener(this);//adiciodando o evento ActionListener
c.add(botok);//adicionando o botao as container
botlimpar=new JButton("Limpar");//criando um botão Limpar
botlimpar.setBounds(320,65,75,25);//posição onde ficara o botao
botlimpar.setBackground(new Color(212,208,200));//atribuindo cor ao botao
botlimpar.setMnemonic(KeyEvent.VK_L);//criando teclas de atalho
botlimpar.addActionListener(this);//adiciodando o evento ActionListener
c.add(botlimpar);//adicionando o botao as container
show();//metodo de exibição na tela
}
public static void main(String []args)
{ //traz aparecia do windows
try
{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch(Exception e)
{
}
Login l=new Login();//criação do objeto da classe Login
}
}
cara, muito obrigado, era isso mesmo… só nao sabia q poderia implementar o metodo sem nada…heheheheheh
valeu
GAbriel