tenho esses dois metodos para mostrar dados do banco no jtable.
no banco de dados ela tá como Date(mysql=yyyy-MM-dd).
já tentei formatar data para exibí-la na tabela, mas não obtive sucesso.
quero exibila no formato dd/mm/yyyy.
qual dos métodos devo formatar a data??
já ! agradeço ajuda!
public List<EntradaBean> consultaEntradasaidaProdutos(String nome){
List<EntradaBean> produtos = new ArrayList();
try{
AcessoMysql mysql = new AcessoMysql();
pstm = mysql.conectar().prepareStatement(entradasaida);
pstm.setString(1,nome);
rs= pstm.executeQuery();
while (rs.next()){
prod = new EntradaBean();
...
prod.setDataVencimento(rs.getDate("entradasaida_datavencimento"));
prod.setNomeProduto(rs.getString("produtos_nome"));
...
produtos.add(prod);
}
mysql.desconectar();
Pesquise por AbstractTableModel e crie seu TableModel para trabalhar diretamente com a data e objetos.
E
el2004el
posso postar aqui cetenas de exemplos sobre SimpleDateFormat que pesquisei.
ja uso ele em outros componetes, mas não consigo para o jtable.
O
ono.leo
Opa, se for somente para exibicao de dados formatados em uma JTable, voce poderia, por exemplo, criar e associar um DefaultTableCellRenderer com sua respectiva coluna.
Para isso, é necessário criar uma outra classe tabela que extende JTable e sobreescrever o metodo getCellRenderer() retornando os respectivos CellRenders para cada coluna.
Lembrando que primeiro o programa tenta buscar o CellRender em JTable.getCellRenderer() mas se neste não tiver nenhum que retorne explicitamente, o programa faz uma consulta do tipo do objeto chamando o metodo TableModel.getColumnClass() para então retornar um CellRender padrão.
Um exemplo de codigo de implementação seria:
importjava.awt.BorderLayout;importjava.math.BigDecimal;importjava.sql.Timestamp;importjava.text.NumberFormat;importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Locale;importjavax.swing.JFrame;importjavax.swing.JTable;importjavax.swing.table.AbstractTableModel;importjavax.swing.table.DefaultTableCellRenderer;importjavax.swing.table.TableCellRenderer;importjavax.swing.table.TableModel;importjavax.swing.text.NumberFormatter;publicclassTesteTabela{publicstaticvoidmain(String[]args){JFramef=newJFrame("Teste menu");f.setSize(400,300);f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setLocationRelativeTo(null);Tabelatabela=newTabela(newTabelaModelo());f.getContentPane().add(tabela,BorderLayout.CENTER);f.setVisible(true);}privatestaticclassTabelaextendsJTable{privatestaticfinallongserialVersionUID=1L;privateFormatadorDataformatadorData=newFormatadorData();privateFormatadorMoedaformatadorMoeda=newFormatadorMoeda();publicTabela(TableModelmodeloDaTabela){super(modeloDaTabela);}@OverridepublicTableCellRenderergetCellRenderer(introw,intcolumn){if(column==1)returnformatadorData;if(column==2)returnformatadorMoeda;returnsuper.getCellRenderer(row,column);}}privatestaticclassFormatadorMoedaextendsDefaultTableCellRenderer{privatestaticfinallongserialVersionUID=1L;publicFormatadorMoeda(){super();}@OverrideprotectedvoidsetValue(Objecto){StringdataFormatada="";NumberFormatnf=NumberFormat.getCurrencyInstance(newLocale("PT","BR"));NumberFormatternff=newNumberFormatter(nf);try{dataFormatada=nff.valueToString(o);}catch(ParseExceptione){e.printStackTrace();}super.setValue(dataFormatada);}}privatestaticclassFormatadorDataextendsDefaultTableCellRenderer{privatestaticfinallongserialVersionUID=1L;publicFormatadorData(){super();}@OverrideprotectedvoidsetValue(Objecto){StringdataFormatada="";SimpleDateFormatsdf=newSimpleDateFormat("dd/MM/yyyy");dataFormatada=sdf.format(o);super.setValue(dataFormatada);}}privatestaticclassTabelaModeloextendsAbstractTableModel{privatestaticfinallongserialVersionUID=1L;@OverridepublicintgetColumnCount(){return3;}@OverridepublicintgetRowCount(){return2;}@OverridepublicObjectgetValueAt(introw,intcol){if(row==0&&col==0)return"linha1";if(row==0&&col==1)returnnewTimestamp(934534435344L);if(row==0&&col==2)returnnewBigDecimal("123.45");if(row==1&&col==0)return"linha2";if(row==1&&col==1)returnnewTimestamp(954345345355L);if(row==1&&col==2)returnnewBigDecimal("67.89");returnnull;}@OverridepublicClass<?>getColumnClass(intcolumnIndex){if(columnIndex==0)returnString.class;// if (columnIndex==1) return null;// if (columnIndex==2) return null;returnnull;}}}