package de.saring.util.gui.javafx; import java.text.NumberFormat; import javafx.scene.control.TableCell; import javafx.scene.control.TableColumn; import javafx.util.Callback; /** * TableColumn cell factory implementation for displaying formatted number values inside table cells. * The number of displayed fraction digits is limited. * * @param <T> type of table model object * @author Stefan Saring */ public class NumberCellFactory<T> implements Callback<TableColumn<T, Number>, TableCell<T, Number>> { private static final NumberFormat NUMBER_FORMAT = NumberFormat.getNumberInstance(); static { NUMBER_FORMAT.setMaximumFractionDigits(3); } @Override public TableCell<T, Number> call(final TableColumn<T, Number> column) { return new TableCell<T, Number>() { @Override protected void updateItem(final Number value, final boolean empty) { super.updateItem(value, empty); setText(empty || value == null ? null : NUMBER_FORMAT.format(value)); } }; } }