Trocando TAB por ENTER
09/04/2009
Sou novata em Java, entrei agora no portal javafree e vi esse código abaixo. Gostaria de tirar algumas dúvidas, se for possível: aonde devo colocar esse código? Inseri no inicio da minha classe e deu erro na variável frame, vcs poderiam me dizer o que é?
Gostaria de, para passar de um campo ao outro do formulário, apertar ENTER ao invés de TAB, mas sem colocar o código em cada FocusLost..
// Colocando enter para pular de campo
HashSet conj = new HashSet(frame.getFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS));
conj.add(AWTKeyStroke.getAWTKeyStroke(KeyEvent.VK_ENTER, 0));
frame.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, conj);
Sds
Nadia
Posts
09/04/2009
Vitor Pamplona
Fala Nadia,
Vc pode colocar no ponto de inicialização do sistema. Já que, ao executar este código, o sistema inteiro será alterado.
[]s
09/04/2009
Andre Valdestilhas
Booooooooooaaaaaaa
Eu não conhecia essa pra trocar o Tab pelo Enter...
Valeu !!!
09/04/2009
Vitor Pamplona
[quote="firmao"]Booooooooooaaaaaaa
Eu não conhecia essa pra trocar o Tab pelo Enter...
Valeu !!!
Tem coisas que só o Swing faz por você! :P
Oi Vitor, eu coloquei o código no início da classe, mas dá erro na classe HashSet diz "Cannot find symbol" e tbm nas variáveis frame e KeyEvent.
Sds
Nadia
09/04/2009
Vitor Pamplona
Precisa adicionar os imports:
import java.awt.AWTKeyStroke;
import java.awt.KeyboardFocusManager;
import java.awt.event.KeyEvent;
import java.util.HashSet;
Vitor, porque tenho que importar uma classe específica, como por exemplo import java.awt.KeyboardFocusManager;, eu importei como java.awt.*; ele já não deveria funcionar?
sds
Nadia
Vitor, último problema... dá erro na variável frame, essa variável não faz parte dos métodos das classes? Ou tenho que declará-la? Se tiver declaro como o que?
Sds
Nadia
09/04/2009
Vitor Pamplona
Aí teria que ser assim:
import java.awt.*;
import java.awt.event.*;
import java.util.*;
Ou seja, para cada package e subpackage, vc teria que adicionar um import "global"
[]s
Vitor, último problema... dá erro na variável frame, essa variável não faz parte dos métodos das classes? Ou tenho que declará-la? Se tiver declaro como o que?
Sds
Nadia
09/04/2009
Vitor Pamplona
frame é o teu JFrame principal.
hum... talvez seja necessário colocar este código em cada tela (JFrame) que você usar.
Mas ele está no Frame. Segue uma parte do código:
import javax.swing.*;
import java.sql.*;
import java.awt.AWTKeyStroke;
import java.awt.KeyboardFocusManager;
import java.awt.event.KeyEvent;
import java.util.HashSet;
import javax.swing.JFrame;
public class Produto extends javax.swing.JFrame {
/** Creates new form Produto */
public Produto() {
initComponents();
setBounds(130,80,670,580);
// Colocando enter para pular de campo
HashSet conj = new HashSet(frame.getFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS));
conj.add(AWTKeyStroke.getAWTKeyStroke(KeyEvent.VK_ENTER, 0));
frame.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, conj);
.
.
.
E continua dando erro na variável frame...
Sds
Nadia
09/04/2009
Vitor Pamplona
Use this ao invés de frame.
O this referencia ao próprio objeto.
Muito obrigada Vitor, deu certo!!
Sds
Nadia
[quote="vfpamp"]Use this ao invés de frame.
O this referencia ao próprio objeto.
sdfasfasdfasdfasdff