Intereting Posts

Формат номера в Jtable

У меня есть Jtable (tableSummary). Мне нужно отформатировать 2 столбца таблицы, чтобы содержимое было в форме DECIMAL (например, 1,400.00). Как я могу это сделать?

вот мой код для таблицы:

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); } } 

столбцы, amt и daily – это столбцы, которые мне нужно отформатировать.

Заранее спасибо!

Как уже говорила в своих комментариях клепатра

  • Преобразование из объекта в представление String (или любое другое представление) является задачей средства визуализации. Ваша TableModel должна содержать объекты
  • Создайте и установите соответствующий рендерер на JTable (например, вызывая JTable#setDefaultRenderer или переопределяя JTable#getCellRenderer )

В качестве средства визуализации для экземпляров Number вы можете использовать тот, который использует NumberFormat для форматирования, как показано в ответе Самира

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