Estou tentando mascarar os fields de minha aplicação, mas isso gera uma excessão quando vou inserir os dados na tabela. Diz para corrigir o número que é apresentado com vírgula(é que usei uma máscara para utilizar vírgula).
MaskFormatter maskPreco = new MaskFormatter("##,##");
fieldPreco = new JFormattedTextField(maskPreco );
ou
NumberFormat formatPreco = new NumberFormat.getInstance( new Locale( "pt", "BR" ) );
fieldPreco = new JFormattedTextField(formatPreco);
E logo depois tem um parse para o field
float preco;
try {
preco = Float.parseFloat(fieldPreco.getText());
} catch(NumberFormatException nfex) {
JOptionPane.showMessageDialog(null, "Preencha o campo \"preço\" corretamente!\n" +nfex,
"Erro", JOptionPane.ERROR_MESSAGE);
return;
}
O que devo usar para que eu possa inserir os dados na tabela?
E logo depois preciso listar os dados cadastrados em uma tabela que construi em
minha aplicação, com a ajuda de um vetor.
Mas o problema é que alguns campos que precisam apresentar vírgulas.
Neste modo devo usar um MasFormatter ou NumberFormat?
[code]try {
Vector cabecalho = new Vector();
Vector linhas = new Vector();
st = con.createStatement();
rs = st .executeQuery("SELECT dado FROM tabela "+
" WHERE codGado = '" + fieldCons1.getText() + "';");
rs.next();
ResultSetMetaData rsmd = rs.getMetaData();
for (int i = 1; i <= rsmd.getColumnCount(); ++i)
cabecalho.addElement(rsmd.getColumnName(i));
do {
linhas.addElement(proximaLinha(rs, rsmd));
} while (rs.next());
tabela = new JTable(linhas, cabecalho);
tabela.setFont( f );
scroller = new JScrollPane(tabela);
p1.add(scroller, BorderLayout.CENTER);
validate();
st.close();
} catch (SQLException sqlex) { ... }
}
private Vector proximaLinha(ResultSet rs, ResultSetMetaData rsmd) {
Vector LinhaAtual = new Vector();
try {
MaskFormatter mask = new MaskFormatter("##,##"); /* como utilizar a máscara aqui???
A máscara vai mostrar o dado com vírgula? */
LinhaAtual.addElement(rs.getDate("dado"));
} catch (SQLException sqlex2) { ... }
catch (Exception ex2) { ... }
return LinhaAtual;[/code]
Obrigado.