Selasa, 07 Juni 2016

Mengubah Format Tampilan Bilangan dan Rata Kanan Isi Sel JTable

Barikut ini adalah source code program Java untuk mengubah tampilan sel dan mengubah menjadi rata kanan (right justified) pada komponen Swing JTable.

import java.awt.*;
import java.text.DecimalFormat;
import javax.swing.*;
import javax.swing.table.*;

public class FormatAngkaTabel extends JFrame {

    public static void main(String[] args) {
        FormatAngkaTabel jendela = new FormatAngkaTabel();
        jendela.setDefaultCloseOperation(EXIT_ON_CLOSE);
        jendela.pack();
        jendela.setVisible(true);
    }

    public FormatAngkaTabel() {
        Object[] namaKolom = {"Nama", "Panjang", "Berat"};
        Object[][] data = {
            {"Joko", 850.503, 5},
            {"Tuti", 36.23954, 6},
            {"Budi", 8.3, 7},
            {"Wati", 246.0943, 23}};

        JTable tabelnya = new JTable(data, namaKolom);

        tabelnya.getColumnModel().getColumn(1).setCellRenderer(new DecimalFormatRenderer());
        tabelnya.getColumnModel().getColumn(2).setCellRenderer(new DecimalFormatRenderer());
        getContentPane().add(new JScrollPane(tabelnya));
    }

    static class DecimalFormatRenderer extends DefaultTableCellRenderer {

        private static final DecimalFormat formatter = new DecimalFormat("#.00");

        @Override
        public void setHorizontalAlignment(int alignment) {
            super.setHorizontalAlignment(SwingConstants.RIGHT);
        }

        public Component getTableCellRendererComponent(
                JTable table, Object value, boolean isSelected,
                boolean hasFocus, int row, int column) {

            value = formatter.format((Number) value);

            return super.getTableCellRendererComponent(
                    table, value, isSelected, hasFocus, row, column);
        }
    }
}

Tidak ada komentar: