怎样让JTable中的数据居中对齐,请大家多多指教!

解决方案 »

  1.   

    public   class   MyTableRenderer     extends   JLabel   implements   TableCellRenderer{   
        
          public   Component   getTableCellRendererComponent(   
                  JTable   table,Object   value,boolean   isSelected,   
                  boolean   hasFocus,int   row,int   col){   
        
              setHorizontalAlignment(SwingConstants.CENTER);//居中   
        }   
      }   
        
      ...   
        
      table.setDefaultRenderer(String.class,new   MyTableRenderer());   from:http://topic.csdn.net/t/20040614/14/3090328.html
      

  2.   

    我只提供一个可运行的样例,剩下的你自己分析吧!
    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;
      }
    }