Como eu faco para um JTextField mudar o foco de um para o outro apertando enter ?
Setfocus
7 Respostas
Bom isso ja foi falado aqui, mas eu não consegui achar o link, então vou passar a solução que eu inclusive pequei daqui mesmo, acho que esta igual ou parecido, mais funciona.
class nome_da_classe implements KeyListener{
seu codigo
//metodo que vai trocar o focus
public void keyPressed (KeyEvent ke){
if (ke.getKeyCode() == ke.VK_ENTER) {
Component c = ke.getComponent();
c.transferFocus();
c = null;
}
}
public void keyTyped(KeyEvent ke)
{
}
public void keyReleased(KeyEvent ke)
{
}
Não esqueca de colocar todos os seus componentes que voce quer que faca a troca de focus no addKeyListener. Exemplo...
nome_do_bottao.addKeyListener(this);
nome_do_campo.addKeyListener(this);
...
Espero ter ajudado
nome_do_bottao.addKeyListener(this);
nome_do_campo.addKeyListener(this);
ixi… deu erro no codigo acima.
Parece que o JtextField nao aceita o ponteir (this).
Fala que nao da suporte a esse metodo…
deu erro pq era apenas um exemplo que o massardi deu
le aceita qquer referencia, inclusive o THIS, desde que voce seja um LISTENER
sua classe precisa ser o proprio lsitener se vc quer passar this
package pagina;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;
public class Applet1 extends Applet {
private boolean isStandalone = false;
JToggleButton btLogar = new JToggleButton();
JTextField edSenha = new JTextField();
JTextField edLogin = new JTextField();
JLabel jLabel1 = new JLabel();
JLabel jLabel2 = new JLabel();
JLabel jLabel3 = new JLabel();
//Get a parameter value
public String getParameter(String key, String def) {
return isStandalone ? System.getProperty(key, def) :
(getParameter(key) != null ? getParameter(key) : def);
}
//Construct the applet
public Applet1() {
}
//Initialize the applet
public void init() {
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
//Component initialization
private void jbInit() throws Exception {
btLogar.setBackground(SystemColor.desktop);
btLogar.setOpaque(false);
btLogar.setText("Logar");
btLogar.setBounds(new Rectangle(158, 195, 65, 19));
btLogar.addActionListener(new Applet1_btLogar_actionAdapter(this));
this.setLayout(null);
edSenha.setOpaque(false);
edSenha.setBounds(new Rectangle(153, 135, 83, 20));
edLogin.setOpaque(false);
edLogin.setText("");
edLogin.setBounds(new Rectangle(153, 108, 83, 20));
jLabel1.setText("Login");
jLabel1.setBounds(new Rectangle(106, 107, 57, 18));
jLabel2.setText("Senha");
jLabel2.setBounds(new Rectangle(104, 137, 44, 14));
jLabel3.setFont(new java.awt.Font("Serif", 1, 30));
jLabel3.setText("ACESSO EXCLUSIVO");
jLabel3.setBounds(new Rectangle(52, 28, 307, 26));
this.setBackground(SystemColor.textHighlight);
this.add(jLabel1, null);
this.add(edLogin, null);
this.add(edSenha, null);
this.add(jLabel2, null);
this.add(btLogar, null);
this.add(jLabel3, null);
}
//Get Applet information
public String getAppletInfo() {
return "Applet Information";
}
//Get parameter info
public String[][] getParameterInfo() {
return null;
}
void btLogar_actionPerformed(ActionEvent e) {
}
}
class Applet1_btLogar_actionAdapter implements java.awt.event.ActionListener {
Applet1 adaptee;
Applet1_btLogar_actionAdapter(Applet1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.btLogar_actionPerformed(e);
}
}
meu codigo eh o acima…
So quero fazer o focus do teclado mudar quando aperto enter.
no delphi eu faco assim
no on key press.
if key = # 13 then
edSenha.setfocus;
Agora no Java eh como ?
da uma olhada no tutorial da sun, sobre listeners e eventos, d pacote java.awt
eh parecido com o do delhpi
blz.
MyJTextField.requestFocus();