title: How to center cells in JTable
body: <p>I'm having an specific problem with my code.</p>
  
  <pre><code>import java.awt.*;
  import java.awt.event.*;
  import javax.swing.*;
  import java.io.*;
  import javax.swing.JFrame;
  import javax.swing.JScrollPane;
  import javax.swing.JTable;
  import javax.swing.table.DefaultTableModel;
  import javax.swing.table.*;
  import java.awt.Color;
  
  class ver_his_sign extends JFrame {
  
      ver_his_sign() {
  
          JTable table = new JTable();
          JScrollPane scroll = new JScrollPane();
  
          DefaultTableModel model = new DefaultTableModel(get_data(), get_header());
  
          JFrame hk = new JFrame("Historial de Significados");
          Image icon = Toolkit.getDefaultToolkit().getImage("JLPT.jpg");
          ImageIcon ima = new ImageIcon("JLPT.jpg");
          table = new JTable(model) {
              public boolean isCellEditable(int row, int col) {
                  switch (col) {
                      case 0:
                          return false;
                      case 1:
                          return false;
                      case 2:
                          return true;
                      default:
                          return false;
                  }
              }
  
              @Override
              public Class getColumnClass(int column) {
                  switch (column) {
                      case 0:
                          return String.class;
                      case 1:
                          return String.class;
                      case 2:
                          return Boolean.class;
                      default:
                          return Boolean.class;
                  }
              }
          };
          table.setFont(new Font("Microsoft JhengHei", Font.BOLD, 13)); // a custom renderer which uses a special font
          DefaultTableCellRenderer r = new DefaultTableCellRenderer() {
              Font font = new Font("Microsoft JhengHei", Font.BOLD, 50);
  
              @Override
              public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
                  super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
                  setFont(font);
                  setForeground(Color.blue);
                  return this;
              }
          };
          table.getColumnModel().getColumn(0).setCellRenderer(r);
          TableColumn column = null;
          DefaultTableCellRenderer tcr = new DefaultTableCellRenderer();
          tcr.setHorizontalAlignment(JLabel.CENTER);
          DefaultTableCellRenderer defaultRenderer = (DefaultTableCellRenderer) table.getDefaultRenderer(Object.class);
          defaultRenderer.setHorizontalAlignment(JLabel.CENTER);
          defaultRenderer.setFont(new Font("Microsoft JhengHei", Font.BOLD, 50));
          tcr.setFont(new Font("Microsoft JhengHei", Font.BOLD, 50));
          for (int i = 0; i &lt; 3; i++) {
              column = table.getColumnModel().getColumn(i);
              if (i == 0) {
                  column.setPreferredWidth(200);
              } else {
                  if (i == 1) {
                      column.setPreferredWidth(100);
                  } else {
                      column.setPreferredWidth(300);
                  }
              }
          }
          table.setRowHeight(table.getRowHeight() + 70);
          table.setModel(model);
          scroll.add(table);
          this.add(scroll);
          this.setTitle("Historial de Significados");
          this.setSize(1350, 700);
          this.setIconImage(icon);
          this.setVisible(true);
          this.setLocationRelativeTo(null);
  
          scroll.setViewportView(table);
      }
  
      Object[][] get_data() {
          Object data[][] = new Object[][]{
              {"Uno, 1", "\u4e00", true},
              {"Uno, 1", "\u4e01", true},
              {"Uno, 1", "\u4e02", true},
              {"Uno, 1", "\u4e03", true},
              {"Uno, 1", "\u4e04", true}
          };
          return data;
      }
  
      String[] get_header() {
          String header[] = new String[]{"KANJI", "SIGNIFICADO", "Agregar"};
          return header;
      }
  }
  </code></pre>
  
  <p>Then it happens what appears on the image. I need Kanji column to be CENTER alignment, but for some reason <code>DefaultTableCellRenderer</code>, `tcr, is not working as it is supposed to be, but the default renderer is doing it as it is supposed to be.</p>
  
  <p>Any suggestion / help?</p>
  
  <p><img src="https://i.stack.imgur.com/7rwnv.png" alt="enter image description here"></p>