Ai galera,eu fiz uma aplicaçãozinha para brincar um pouco com Swing.
Este é o código que eu fiz…
obs: Sei que está mal estruturado, mas como disse apenas para brincar um pouco para aprender…
package net.kina.cliente.view;
import java.awt.Component;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class Login extends JFrame{
private JLabel text = new JLabel();
private JPanel titulo = new JPanel();
private JTextField nome = new JTextField();
private JPasswordField password = new JPasswordField();
private JPanel login = new JPanel();
private GridLayout grid = new GridLayout(1,3);
private JButton ok = new JButton();
private JButton cancel = new JButton();
private GridBagConstraints gridBag = new GridBagConstraints();
public Login(){
super("Login");
getContentPane().setSize(300,500);
getContentPane().setLayout(new GridBagLayout());
/* Título */
Font f = new Font("Verdana", Font.BOLD,15);
text.setText("Título");
text.setFont(f);
titulo.add(text);
titulo.setAlignmentY(JPanel.CENTER_ALIGNMENT);
/* Campos */
nome.setColumns(8);
password.setColumns(8);
nome.addKeyListener(new Key());
password.addKeyListener(new Key());
/* Botões */
grid.setHgap(30);
grid.setVgap(30);
login.setLayout(grid);
ok.setText("Login");
ok.setSize(5,5);
cancel.setText("Sair");
cancel.setSize(5,5);
login.add(cancel);
login.add(ok);
gridBag.fill = GridBagConstraints.HORIZONTAL;
gridBag.gridy = 0;
getContentPane().add(titulo,gridBag);
gridBag.gridy = 1;
gridBag.gridx = 0;
getContentPane().add(createLabel("Nome:", JLabel.RIGHT_ALIGNMENT), gridBag);
gridBag.gridy = 1;
gridBag.gridx = 1;
getContentPane().add(nome,gridBag);
gridBag.gridy = 2;
gridBag.gridx = 0;
getContentPane().add(createLabel("Senha:", JLabel.RIGHT_ALIGNMENT),gridBag);
gridBag.gridy = 2;
gridBag.gridx = 1;
getContentPane().add(password,gridBag);
gridBag.gridy = 3;
getContentPane().add(login, gridBag);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setVisible(true);
}
private Component createLabel(String text){
JPanel panel = new JPanel();
JLabel label = new JLabel(text);
panel.add(label);
return panel;
}
private Component createLabel(String text, float alignmentY){
JPanel panel = new JPanel();
JLabel label = new JLabel(text);
panel.add(label);
panel.setAlignmentY(alignmentY);
return panel;
}
private Component createLabel(String text, float alignmentY, float alignmentX){
JPanel panel = new JPanel();
JLabel label = new JLabel(text);
panel.add(label);
panel.setAlignmentY(alignmentY);
panel.setAlignmentY(alignmentX);
return panel;
}
private class Key implements KeyListener{
public void keyPressed(KeyEvent e) {
System.out.println(e.getKeyCode());
switch(e.getKeyCode()){
case 10:
//getContentPane().transferFocus();
transferFocus();
}
}
public void keyReleased(KeyEvent e) {
}
public void keyTyped(KeyEvent e) {
}
}
}
O problema está quando eu aperto Enter nos Fields (Text e Password).
O que eu queria fazer:
Quando o cursor estivesse no login, e eu apertasse o enter, ele fosse para o password.
O que está fazendo:
Quando estou no password e aperto Enter ele vai para o login, e quando estou no login faz nada.
Se alguém puder me dar uma luz de como resolver isso eu agradeço…
Valeu galera!