Valeu pela dica do MaskFormatter, mas o que eu estou qrendo é o seguinte:
Quando o usuário digitar o caractere ponto, ele não pode aparecer no JTextField e o foco tem que passar pro próximo componente…
Se alguém tiver alguma sugestão…
Valeu pela dica do MaskFormatter, mas o que eu estou qrendo é o seguinte:
Quando o usuário digitar o caractere ponto, ele não pode aparecer no JTextField e o foco tem que passar pro próximo componente…
Se alguém tiver alguma sugestão…
Adicionar um DocumentListenet ao TextField e fazer
o tratamento…
if (char.equals('.')){
focusToNext();}
Valeu? até… :thumbup:
[]'s
E quando for responder uma pergunta sua mesmo clique no botao
Responder e nao no Criar Novo Topico, ok?
Até… :thumbup:
[]'s
Hum…não entendi muito bem como que faz isso não. Eu estava utilizando o KeyListener, so que na hora que eu mudo o foco o ponto aparece.
Tem jeito de fazer esse ponto não aparecer???
Valeu…
Tirando o ultimo caracter do TextField antes de passar o foco?
Valeu? até… :thumbup:
[]'s
O segredo é colocar um DocumentListener mesmo:
tfSeiLa.getDocument().addDocumentListener(meuDocumentListener);
Implemente no método:
insertUpdate(DocumentEvent e)
…e do DocumentEvent que vem como parâmetro você consegue ver o que foi inserido e tratar o problema.
Retirar o último caractere do JTextField antes de passar o foco não deu certo, ele passa o foco e o caractere não sai. E não entendi o DocumentListener.
Me ajudem, por favor…
Valeu…
Experimenta esta:
public void keyPressed(KeyEvent e) {
if(e.getSource() == txt1){
if(e.getKeyCode() == 8 ){
txt2.requestFocus();
return;
}
}
}
No lugar do 8 é 44 ou 46.
[color=red]Mensagem do moderador: ao postar codigos utilize as tags [ code ] [ /code ].[/color]
Esse de colocar o RETURN tb não deu certo…
Envia o fonte do programa.
Dê uma olhada no código abaixo, quero fazer com o caractere ponto o que estou fazendo com o Enter.
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Teste extends JFrame implements KeyListener
{
JTextField tx1, tx2, tx3, tx4;
JPanel painel;
public Teste()
{
setSize(200,200);
setTitle("Teste Ponto");
painel = new JPanel();
tx1 = new JTextField(3);
tx2 = new JTextField(3);
tx3 = new JTextField(3);
tx4 = new JTextField(3);
add(painel,BorderLayout.CENTER);
painel.add(tx1);
painel.add(tx2);
painel.add(tx3);
painel.add(tx4);
tx1.addKeyListener(this);
tx2.addKeyListener(this);
tx3.addKeyListener(this);
tx4.addKeyListener(this);
}
public void keyPressed(KeyEvent evento)
{
// qro fazer isso com o PONTO (so q ele não pode aparecer)
if(evento.getKeyCode() == 10)
{
if(evento.getSource() == tx1)
tx2.requestFocus();
}
// ...
}
public void keyReleased(KeyEvent evento) { }
public void keyTyped(KeyEvent evento) { }
public static void main(String[] args)
{
Teste teste = new Teste();
teste.setVisible(true);
}
}
Se alguem puder me ajudar…
Agradeço…
[color=red]Mensagem do moderador: Ao postar codigos use as tags [ code ] [ /code ][/color]
No JTextField não consegui mas no TextField funciona. Creio ser um erro do javax.
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Teste extends JFrame implements KeyListener
{ TextField tx1, tx2, tx3, tx4;
JPanel painel;
public Teste()
{ setSize(200,200);
setTitle("Teste Ponto");
painel = new JPanel();
tx1 = new TextField(3);
tx2 = new TextField(3);
tx3 = new TextField(3);
tx4 = new TextField(3);
add(painel,BorderLayout.CENTER);
painel.add(tx1);
painel.add(tx2);
painel.add(tx3);
painel.add(tx4);
tx1.addKeyListener(this);
tx2.addKeyListener(this);
tx3.addKeyListener(this);
tx4.addKeyListener(this);
}
public void keyPressed(KeyEvent evento)
{ // qro fazer isso com o PONTO (so q ele não pode aparecer)
if(evento.getKeyCode() == 46)
{ if(evento.getSource() == tx1)
{ evento.setKeyCode((int) KeyEvent.VK_ESCAPE);
tx2.requestFocus();
return;
}
}
// ...
}
public void keyReleased(KeyEvent evento) { }
public void keyTyped(KeyEvent evento) { }
public static void main(String[] args)
{ Teste teste = new Teste();
teste.setVisible(true);
}
}
[color=red]Mensagem do Moderador: Ao postar codigos use as tags [ code ] [ /code ].[/color]
Com o TextField deu certinho, so que me atrapalhou em outras coisas, pq eu estou usando os métodos setBorder e setDocument nos JTextField’s, qndo rodei o programa acima fiquei animado, mas qndo mudei no meu deu esses erros com esses métodos.
Alguém tem + alguma sugestão??
Valeu ai pelas dicas…
Sugestao: Leia este tópico.
:arrow: http://www.guj.com.br/posts/list/0/27352.java#148285
Valeu? até… :thumbup:
[]'s
Li o tópico, mas aconteceu a mesma coisa que antes, com o TextField funciona, mas com o JTextField não.
Se tiverem + alguma sugestão vou agradecer muito…
Valeu.
Outra dica:
Use o DocumentListener, nao use o KeyListener.
Valeu? até… :thumbup:
[]'s
Ok, mas eu sou iniciante, seria possível vc colocar um pequeno exemplo do DocumentListener???
Valeu msm pelas dicas… :thumbup:
Experimenta este exemplo e depois me dá o retorno:
import javax.swing.;
import java.awt.;
import java.awt.event.*;
public class Teste extends JFrame implements KeyListener
{ JTextField tx1, tx2, tx3, tx4;
JPanel painel;
String tecla;
public Teste()
{ setSize(200,200);
setTitle(“Teste Ponto”);
painel = new JPanel();
tx1 = new JTextField(3);
tx2 = new JTextField(3);
tx3 = new JTextField(3);
tx4 = new JTextField(3);
add(painel,BorderLayout.CENTER);
painel.add(tx1);
painel.add(tx2);
painel.add(tx3);
painel.add(tx4);
tx1.addKeyListener(this);
tx2.addKeyListener(this);
tx3.addKeyListener(this);
tx4.addKeyListener(this);
}
public void keyPressed(KeyEvent evento)
{ // qro fazer isso com o PONTO (so q ele não pode aparecer)
if(evento.getKeyCode() == 46)
{
if(evento.getSource() == tx1)
{ String texto=tx1.getText();
int tam=texto.length();
tecla=texto.substring(0,tam);
tx2.requestFocus();
return;
}
}
// …
}
public void keyTyped(KeyEvent evento) {}
public void keyReleased(KeyEvent evento)
{ if(evento.getKeyCode() == 46)
{ if(evento.getSource()==tx2)
{ tx1.setText(tecla);
}
}
}
public static void main(String[] args)
{ Teste teste = new Teste();
teste.setVisible(true);
}
}
Se fores usar o keyListener, coloque o seu código no keyTyped e após entrar na verificação use o método consume do evento.
public void keyTyped(KeyEvent evento) {
if(evento.getKeyChar() == '.') {
evento.consume();
if(evento.getSource() == tx1)
tx2.requestFocus();
}
}
Falou!!
No exemplo do luizbarbosa o ponto teima em aparecer, mas no exemplo do TedLoprao deu certo.
Agradeço a todos pelas dicas, todas me ajudaram bastante…
Valeu… :thumbup: