3 只要不将JTable放在JScrollPane中,则不会显示表头。
5 下面代码可以限制某列(columnNum)的宽度。
  JTable jTableExpl;
  jTableExpl.getColumnModel().getColumn(columnNum).setMaxWidth(60);想交流:[email protected]

解决方案 »

  1.   

    1 JTableHeader和JTable的关系
       
       表头啊,还能有什么关系啊?
      
    2 JTableHeader都来做些什么
       显示表的列名啊 
     
    3 我想隐藏表头,用JTableHeader可以实现吗,怎么实现?
       可以,table.getTableHeader().setVisible(false);
      
    4 这一句话是什么意思 header.setSize(header.getPreferredSize());
       设置header大小为首选大小。5 能不能锁死列宽?
        table.getColumnModel().getColumn(col).setResizable(false);
      
      

  2.   

    5:
    可以的啊!
    有两种方法:
    1:就是锁定所有的列啊!(很笨的方法)
    2:就是在int Maxwidth=75;
             int Minwidth=Maxwidth;
             TableColumn clu=JTable.getColumn(1);
             clu.setMinWidth(Minwidth);
             clu.setMaxWidth(Maxwidth);
       看懂了么?设置列的最大宽度等于最小宽度就是的啦!
    呵呵!
    希望对你有帮助!
    呵呵!
      

  3.   

    1 JTableHeader和JTable的关系
       
       表头啊,还能有什么关系啊?
      
    2 JTableHeader都来做些什么
       显示表的列名啊 
     
    3 我想隐藏表头,用JTableHeader可以实现吗,怎么实现?
       可以,table.getTableHeader().setVisible(false);
      
    4 这一句话是什么意思 header.setSize(header.getPreferredSize());
       设置header大小为首选大小。5 能不能锁死列宽?
        table.getColumnModel().getColumn(col).setResizable(false);
      
      

  4.   

    程序如下:请问如何隐藏表头,例中是姓名,年龄和已婚
    如何锁死列宽
    import javax.swing.*;
    import javax.swing.table.*;public class JTableTest extends JFrame { public static void main(String args[]) {
    JTableTest Test = new JTableTest();
    Test.setSize(300,200);
    Test.setVisible(true);
    }

    public JTableTest() {
    JTable jt = new JTable(new MyTableModel());
    jt.setRowHeight(20);
    //getContentPane().add(new JScrollPane(jt));
    //jt.getTableHeader().setVisible(false);
    }

    }class MyTableModel extends AbstractTableModel {
    private String[] columns = {"姓名","年龄","已婚"};
    private Object[][] data = 
    {{"王晓明asfsdfsdfsdf",new Integer(28),new Boolean(true)},
     {"程晓华",new Integer(26),new Boolean(false)},
     {"张小李",new Integer(35),new Boolean(true)},
     {"林晓力",new Integer(18),new Boolean(false)}
    };

    public int getColumnCount() {
    return (columns.length);
    }

    public int getRowCount() {
    return (data.length);
    }

    //public String getColumnName(int col) {
    // return (columns[col]);
    //}

    public Object getValueAt(int row, int col) {
    return (data[row][col]);
    }

    public Class getColumnClass(int col) {
    return (getValueAt(0,col).getClass());
    }

    public boolean isCellEditable( int row,int col) {
    return (col > 0 );
    }

    public void setValueAt(Object value, int row, int col) {
    if(col == 1) {
    try {
    data[row][col] = new Integer((String)value);
    }
    catch (NumberFormatException e) {
    }
    }else 
    data[row][col] = value;
    fireTableCellUpdated(row,col);

    }
    }
      

  5.   

    将方法JTableTest改为如下,完成需求设定选择和列宽:
    public JTableTest() {
    JTable jt = new JTable(new MyTableModel());
          
          jt.setCellSelectionEnabled(false);//设定选择
          tcm = jt.getColumnModel();
          int[] widths1 = {150,25,125};//各列列宽设定,定为3列,真实显示按三者比例
          for(i=0;i<widths1.length;i++) {
            tc = tcm.getColumn(i);
            tc.setPreferredWidth(widths1[i]);
          }
              
    jt.setRowHeight(20);
    getContentPane().add(new JScrollPane(jt)); }
    在class MyTableModel里面添加如下方法,完成替换表头需求:
            public String getColumnName(int c) {//覆盖列名,自定义
                     return columns[c];
            }此问题我已经在你另外一个帖子里面回复过了
      

  6.   

    不好意思,忘了申明tcm,tc和i变量了
      private TableColumnModel tcm;
      private TableColumn tc;
      private int i;