DecimalFormat, quero mostrar 000,00 no meu textField

2 respostas
colosos_colossus

Bom galera no meu gride foi fácil

while (resultado.next()) { int codigo = resultado.getInt("CODPROF"); String nome = resultado.getString("NOMPROF"); double salario = resultado.getDouble("SALPROF"); dtm.addRow(new Object[]{new Integer(codigo), nome, df.format(salario)}); }
agora onde actualiza os dados em um método não estou conseguindo:

public void atualizaCamposCadastro() { try{jTCodigo.setText(resultado.getString("CODPROF")); jTNome.setText(resultado.getString("NOMPROF")); jTSalario.setText(resultado.getString("SALPROF")); //df.format("SALPROF"); }catch (SQLException erro) { erro.printStackTrace(); } }
estava tentando acompanhar a forma com datas que eu já fiz em outro código e deu certo, olhe:

public void atualizaCamposCadastro() { try{LCodpri.setText(resultado.getString("CODPRI")); tfDespri.setText(resultado.getString("DESPRI")); tfPospri.setText(resultado.getString("POSPRI")); tfrgcodusu.setText(resultado.getString("RGCODUSU")); tfrgusuario.setText(resultado.getString("RGUSUARIO")); tfrgdata.setValue(data = resultado.getDate("RGDATA")); tfegevento.setText(resultado.getString("RGEVENTO")); }catch (SQLException erro) { erro.printStackTrace(); } }
tfrgdata.setValue(data = resultado.getDate(“RGDATA”)); faz com que traga a data de maneira correta para mim no jFormatedTextField

mais no caso de jTSalario.setText(resultado.getString(“SALPROF”)); não sei o que fazer aqui.
agora pouco tentei assim

jTSalario.setValue(salario = Double.parseDouble(resultado.getString("SALPROF")));

mais da linha de erro no setValue.
esses métodos atualizam de forma a pegar os dados novos do banco e mostrar nos meus campos.
espero que tenha explicado direito e que possam me ajudar, vlw!

Bo0m galera eu consegui é so mudar de textField para jFormatedTextfield para aceitar o setValue

2 Respostas

thiago.correa

Veja se essa classe te ajuda em algo

import java.awt.Desktop;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import java.io.IOException;

import java.net.URI;
import java.net.URISyntaxException;

import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.text.ParseException;

import java.util.Date;

import javax.swing.JButton;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextField;


public class Class1 extends JFrame {
    JDesktopPane jdp = new JDesktopPane();
    JInternalFrame jif;

    JButton button;
    JButton button2;
    JTextField field;

    public Class1() {
        this.setLayout(new FlowLayout());
        button = new JButton("To double");
        button2 = new JButton("To String");
        field = new JTextField("000,00");
        
        


        
        this.add(field);
        this.add(button);
        this.add(button2);
        
        button.addActionListener(new ActionListener(){
                    public void actionPerformed(ActionEvent e) {
                        NumberFormat nf = DecimalFormat.getNumberInstance();
                        double number = 0.0;
                        try {
                            number = ((Double)nf.parse(field.getText()).doubleValue());
                        } catch (ParseException f) {
                            f.printStackTrace();
                        }
                        JOptionPane.showMessageDialog(null,number);
                    }
                });
        button2.addActionListener(new ActionListener(){
                    public void actionPerformed(ActionEvent e) {
                        NumberFormat nf = DecimalFormat.getNumberInstance();
                        String number = "0.0";
                            number = nf.format(new Double(13.0));
                        JOptionPane.showMessageDialog(null,number);
                    }
                });

        this.setVisible(true);
        this.pack();
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);

    }

    public static void main(String[] args) throws IOException, 
                                                  URISyntaxException, 
                                                  ParseException {



        new Class1();

    }
}
colosos_colossus

agora meu problema é outro mais complicado um pouco!
Bom eu to querendo pegar o dado(Valor R$) formatado no jFormatedTextField e passar
novamente para a forma que o banco lê. Estou me complicando na maneira de formatar
e como tem que ir pro banco os dados sendo que a virgula tem que virar o “.”, mais
não ta pegando o replaceAll.
e também como faço para armazenar no banco os dois últimos números
vou mostrar meu código

DecimalFormat df = new DecimalFormat("#,###.00");
DecimalFormat df2 = new DecimalFormat();
public double salariodouble;
.
.
.
else if(acao.equals("alteracao")) {
            try {Number p = df.parse(jTSalario.getText());                 
                 salariodouble = Double.parseDouble(df2.format(p).replace(',', '.'));                   
                 stam.executeUpdate("UPDATE TABPROF SET NOMPROF = '" + jTNome.getText() + "'," +
                        "SALPROF = " + salariodouble+ " WHERE CODPROF = " +jTCodigo.getText());
                        JOptionPane.showMessageDialog(null, "Alteração realizada com sucesso");
                 }catch (ParseException ex) {
           ex.printStackTrace();
           JOptionPane.showMessageDialog(null, "erro para formatar \n"+ ex.getLocalizedMessage());
           }catch (SQLException ex) {
                ex.printStackTrace();
                JOptionPane.showMessageDialog(null, "erro sql \n"+ ex.getLocalizedMessage());
                }
                }
    }

Bom isso foi o que eu tentei :frowning:
jTSalario.getText() é um jFormatedTextField

DecimalFormat df2 = new DecimalFormat();

Aqui () já tentei de tudo quanto foi jeito

Criado 1 de outubro de 2009
Ultima resposta 1 de out. de 2009
Respostas 2
Participantes 2