JTable默认的是左对齐,怎样让它居中对齐?

解决方案 »

  1.   

    我只提供一个可运行的样例,剩下的你自己分析吧!
    import java.awt.Component;import javax.swing.JFrame;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.SwingConstants;
    import javax.swing.table.DefaultTableCellRenderer;
    import javax.swing.table.TableCellRenderer;public class MyJTable extends JTable {
      private MyCellRenderer renderer;  public MyJTable(MyCellRenderer renderer) {
        super(8, 6);
        this.renderer = renderer;
      }  public TableCellRenderer getCellRenderer(int row, int column) {
        return renderer;
      }  public static void main(String[] args) {
        MyJTable t = new MyJTable(new MyCellRenderer());
        JScrollPane pane1 = new JScrollPane(t);// 
        JFrame frame = new JFrame("JTableDemo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setContentPane(pane1);
        frame.pack();
        frame.setVisible(true);  }
    }class MyCellRenderer extends DefaultTableCellRenderer {  public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row,
          int column) {
        super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
        setHorizontalAlignment(SwingConstants.CENTER);
        return this;
      }
    }
      

  2.   

    老紫竹的代码你就信了吧。DefaultTableCellRenderer其实就是一个JLabel,所以用setHorizontalAlignment(SwingConstants.CENTER)设为水平居中;