Ir para conteúdo
Fórum Script Brasil
  • 0

Alinhamento Do Jformattedtextfield


alexandremanowar

Pergunta

Ea e galera

Estou fazendo um formulário desktop em java e criei um JFormattedTextField e fiz a mascara dele para digitar valores monetários. Só tem um problema, ele preenche o campo da esquerda para a direita e eu preciso que ele preencha da direita para esquerda.

Como eu faço para o campo preencher da direita para esquerda?

O meu código é esse:

unitario3 = new javax.swing.JFormattedTextField();
MaskFormatter m_unitario3 = null;
try
{
   m_unitario3 = new MaskFormatter("######,##");
}
catch (Exception e)
{
   e.printStackTrace();
}
unitario3 = new javax.swing.JFormattedTextField(m_unitario3);

Alguém pode me ajudar?

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

E a e beleza! Obrigado pela ajuda

Cara eu estudei o link que você me passou e consegui fazer com que o preenchimento do campo seja feito da direita para esquerda.

Eu usei a classe ComponentOrientation

Porém ainda ficou um problema.

O código é esse:

new javax.swing.JFormattedTextField();
MaskFormatter m_unitario1 = null;
try
{
   m_unitario1 = new MaskFormatter("######,##");
}
catch (Exception e)
{
   e.printStackTrace();
}
unitario1 = new javax.swing.JFormattedTextField(m_unitario1);
unitario1.setComponentOrientation(java.awt.ComponentOrientation.RIGHT_TO_LEFT);

O problema é o seguinte ele preenche da esquerda para a direita porém ele preenche assim:

1,

12,

123,

1234,

1234,5

1234,56

Ou seja o campo da vírgula é o último o preenchimento tem que ser assim:

,1

,12

1,23

12,34

123,45

1234,56

Igual o preenchimento de um caixa de banco. Cara esta muito trampo fazer isso já estudei vários tutoriais. Agora ficou esse problema alguém sabe corrigir?

Link para o comentário
Compartilhar em outros sites

  • 0

consegui fazer. Um amigo me passou um tutorial e meu deu uns toques e funcionou.

ficou assim:

public class MeuDocument extends PlainDocument {

    public void insertString(int offs, String str, AttributeSet a)
            throws BadLocationException
    {
        String texto = getText(0, getLength());
        if(texto.length() < 7) {
            remove(0, getLength());
            StringBuffer strBuf = new StringBuffer(texto.replaceAll(",", "")
                    + str);
            if(strBuf.length() < 3) strBuf.insert(0, ",");
            else strBuf.insert(strBuf.length() - 2, ",");
            super.insertString(0, strBuf.toString(), a);
        }
    }
}

moeda.setDocument(new MeuDocument());

Por padrão os JTextField tem uma formatação chamado Document ou algo assim aí você cria a classe com formatação que você necessita e substitui igual o modelo que deixei acima.

Esse modelo faz justamante igual a um caixa de banco.

Se alguém conseguir deixar o código melhor será muito bem vindo.

Valeu

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...