加入新的行:((DefaultTableModel)JTable.getModel()).addRow(...)
加入新的列:((DefaultTableModel)JTable.getModel()).addColumn(...)
设置指定坐标的值:JTable.setValueAt(...)
当前选中的行:JTable.getSelectedRow()
.........列:JTable.getSelectedColumn()
按某栏排序没用过,好像SwingSet2的Demo里面有,建议看SwingSet2中JTable部分的源码
栏线?你是指table grid的边界线吗?我记得缺省都是显示出来的啊。试试JTable.setShowGrid(true)

解决方案 »

  1.   

    还有一个问题是怎么样使这个JTable不可以修改,但不是无效哟?
      

  2.   

    不行呀,你说的其它几项我都已经会了,就是加入新的行不会,可以你给我说的这种方法((DefaultTableModel)JTable.getModel()).addRow(...)都编译不过去呀.
      

  3.   

    你是怎么建表的,使用了二维数组呢还是表模型?
    使用二维数组的话,你可以重构二维数组对象来增加行或列,如果用的是表模型,以上的方法是可行的,import javax.swing.table.*;别忘了。得到JTable中当前选中的项:
    if(jTable.getSelectedRow()!=-1&&jTable.getSelectedColumn()!=-1)
    jTable.getValueAt(jTable.getSelectedRow(),jTable.getSelectedColumn()); 
      

  4.   

    我是这样建立的:
    JTable tableset=new JTable(10,6);这时候如果我想新加一行怎么做呀?
    还有我想加一个表头可不可以呀?
    如果我还想让这个表不能改怎么办呢?我以前是用VC的可是没想到用java这么复杂.有这么一大堆的问题.
      

  5.   

    如果能看一下DefaultTableModel就什么都明白了。
    table.getModel().addRow();
    如果想要(3,4)不可编辑就这样:
    DefaultTableModel model = new DefaultTableModel(10,6){
      public boolean isCellEditable(int row,int column){
        return row==3&&column==4;
      }
    };
    JTable table = new JTable(model);加表头,JFrame frame=new JFrame();
    frame.getContentPane().add(table.getTableHeader(),BoderLayout.NORTH);
    frame.getContentPane().add(table)就可以了。
    或把table加到JScrollPane中。
      

  6.   

    addRow方法需要传一个Object数组或是一个Vector对象作参数,里面依次是该行各个列上的对象,我想编译不过去可能是因为你传的参数不对。不能编辑的方法同意楼上的,不过对那些不能编辑的格应该是返回false。加表头的话你可以类似这样建表:
    DefaultTableModel model = new DefaultTableModel(new Object[]{"表头1","表头2",...}, rowCount);
    JTable table = new JTable(model);
    以后每加一列时用model.addColumn("表头n");