/* * Geotoolkit - An Open Source Java GIS Toolkit * http://www.geotoolkit.org * * (C) 2014, Geomatys * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. */ package org.geotoolkit.gui.swing.util; import java.awt.Component; import java.text.DecimalFormat; import java.text.NumberFormat; import javax.swing.JLabel; import javax.swing.JTable; import javax.swing.table.DefaultTableCellRenderer; /** * * @author Johann Sorel (Geomatys) */ public class NumberAlignRenderer extends DefaultTableCellRenderer{ private final NumberFormat format = new DecimalFormat("#0.000"); @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { final JLabel lbl = (JLabel) super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); lbl.setHorizontalAlignment(JLabel.RIGHT); if(value instanceof Number){ double val = ((Number)value).doubleValue(); if(Double.isNaN(val)){ lbl.setText("NaN"); }else{ lbl.setText(format.format(val)); } } return lbl; } }