Data Type Java

import java.text.NumberFormat;
import java.util.Locale;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
public class NumberViewer extends JPanel {
  protected AbstractTableModel tableModel;
  protected double currentValue = 1234567.89d;
  protected final static Locale[] availableLocales;
  static {
    availableLocales = Locale.getAvailableLocales();
  }
  public final static int LOCALE_COLUMN = 0;
  public final static int NUMBER_COLUMN = 1;
  public final static int CURRENCY_COLUMN = 2;
  public final static int PERCENT_COLUMN = 3;
  public final static String[] columnHeaders = { "Locale", "Numeric", "Currency", "Percent" };
  public static void main(String[] args) {
    JFrame f = new JFrame("Number Viewer");
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.getContentPane().add(new NumberViewer());
    f.pack();
    f.setVisible(true);
  }
  public NumberViewer() {
    tableModel = new LocaleTableModel();
    JTable table = new JTable(tableModel);
    add(new JScrollPane(table));
  }
  class LocaleTableModel extends AbstractTableModel {
    public int getRowCount() {
      return availableLocales.length;
    }
    public int getColumnCount() {
      return columnHeaders.length;
    }
    public Object getValueAt(int row, int column) {
      Locale locale = availableLocales[row];
      NumberFormat formatter = NumberFormat.getNumberInstance();
      switch (column) {
      case LOCALE_COLUMN:
        return locale.getDisplayName();
      case NUMBER_COLUMN:
        formatter = NumberFormat.getNumberInstance(locale);
        break;
      case CURRENCY_COLUMN:
        formatter = NumberFormat.getCurrencyInstance(locale);
        break;
      case PERCENT_COLUMN:
        formatter = NumberFormat.getPercentInstance(locale);
        break;
      }
      return formatter.format(currentValue);
    }
    public String getColumnName(int column) {
      return columnHeaders[column];
    }
  }
}