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

Nadia Marques

Respostas

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
Responder Citar

09/04/2009

Andre Valdestilhas

Booooooooooaaaaaaa Eu não conhecia essa pra trocar o Tab pelo Enter... Valeu !!!
Responder Citar

09/04/2009

Vitor Pamplona

Booooooooooaaaaaaa Eu não conhecia essa pra trocar o Tab pelo Enter... Valeu !!!
Tem coisas que só o Swing faz por você! :P
Responder Citar

09/04/2009

Nadia Marques

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
Responder Citar

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;
Responder Citar

09/04/2009

Nadia Marques

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
Responder Citar

09/04/2009

Nadia Marques

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
Responder Citar

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
Responder Citar

09/04/2009

Nadia Marques

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
Responder Citar

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.
Responder Citar

09/04/2009

Nadia Marques

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
Responder Citar

09/04/2009

Vitor Pamplona

Use this ao invés de frame. O this referencia ao próprio objeto.
Responder Citar

09/04/2009

Nadia Marques

Muito obrigada Vitor, deu certo!! Sds Nadia
Responder Citar

09/04/2009

Nadia Marques

Use this ao invés de frame. O this referencia ao próprio objeto.
sdfasfasdfasdfasdff
Responder Citar

09/04/2009

Nadia Marques

[quote="vfpamp"]Use this ao invés de frame. O this referencia ao próprio objeto.
sdfasfasdfasdfasdff [/quote]safasfasdfasdfasdfasfasfasdf3222222222222222222
Responder Citar