Jtable number format

I have a Jtable (tableSummary). I need to format 2 columns of the table so that the content is in DECIMAL format (e.g. 1,400.00) How can I do this?

here is my code for the table:

private void tableMarketMouseClicked(java.awt.event.MouseEvent evt) { String sql = "SELECT tblClientInfo.ClientID, tblrefmarket.MarketDesc, tblclientinfo.LastName, tblledger.LoanAmount, " + "tblledger.DateStarted, tblledger.DailyPay, tblledger.Expiry FROM tblclientinfo Inner Join tblbusinessinfo ON tblbusinessinfo.ClientID = tblclientinfo.ClientID " + "Inner Join tblrefmarket ON tblbusinessinfo.MarketID = tblrefmarket.MarketID " + "Inner Join tblledger ON tblledger.ClientID = tblclientinfo.ClientID where MarketDesc = ?"; try { //add column to the table model model.setColumnCount(0); //sets the column to 0 para ig utro click, dili mapun-an ang columns model.setRowCount(0); //sets the row to 0 para ig utro click, dili mapun-an ang rows model.addColumn("C NO"); model.addColumn("MARKET"); model.addColumn("BORROWER"); model.addColumn("LOAN"); model.addColumn("START"); model.addColumn("DAILY"); model.addColumn("EXPIRY"); //model.addColumn("BALANCE"); int row = tableMarket.getSelectedRow(); pst = conn.prepareStatement(sql); pst.setString(1, tableMarket.getModel().getValueAt(row, 0).toString()); rs = pst.executeQuery(); while(rs.next()){ String id = rs.getString(1); String market = rs.getString(2); String name = rs.getString(3); String amt = rs.getString(4); String start = rs.getString(5); String daily = rs.getString(6); String expiry = rs.getString(7); //String area = rs.getString(3); model.addRow(new Object[]{ id, market, name, amt, start, daily, expiry}); } tableSummary.setModel(model); renderer.setHorizontalAlignment( JLabel.RIGHT ); renderer2.setHorizontalAlignment( JLabel.CENTER ); tableSummary.getColumnModel().getColumn(0).setCellRenderer( renderer2 ); tableSummary.getColumnModel().getColumn(4).setCellRenderer( renderer2 ); tableSummary.getColumnModel().getColumn(6).setCellRenderer( renderer2 ); tableSummary.getColumnModel().getColumn(3).setCellRenderer( renderer ); tableSummary.getColumnModel().getColumn(5).setCellRenderer( renderer ); } catch (Exception e) { e.printStackTrace(); JOptionPane.showMessageDialog(null, e); } } 

the columns, amt and daily are the columns that I need to format.

Thank Advance

+2
java sql swing jtable tablemodel
source share
2 answers

As already mentioned in his comments, Cleopatra

  • Converting from an object to a String view (or any other view) is the task of the renderer. Your TableModel should contain only objects
  • Create and set the appropriate renderer to JTable (for example, calling JTable#setDefaultRenderer or overriding JTable#getCellRenderer )

As a visualization tool for Number instances, you can use one that uses NumberFormat formatting, as shown in Samir's answer

+4
source share
 NumberFormat formatter = new DecimalFormat("#,###.00"); String str = formatter.format(1400); System.out.println(str); 
+2
source share

All Articles