自己实现一个TableModel即可。

解决方案 »

  1.   

    TableModel,如上,可以看看core java 2 下册,高级swing一章的JTable
      

  2.   

    1.我想这不能是界面元素JTable的任务了.他负责的是把你要的数据(model)给按照你设定的格式(cellRenderer)给展现出来.你给10行,他决不显示9行,如果你要只显示9行,我想还是从model着手去想.2. 假定你有100行数据,可是你想隐藏其中10行,这时我的想法就是你另外找个地方(比如一个vector或者什么的)把你要隐藏的数据从model中"搬出来",其实就相当于从model中删除,只是在有个你知道的地方保存了而已.这时,JTable很听话,只会把你剩下的90行数据显示出来.至少达到了隐藏的目的.3.当然,隐藏意味着在某些特殊时刻还是要显示出来,那么在你需要的时候,从你的那个备份隐藏的地方把那10行数据拿出来,再添加到model中去,这样JTable认为model被修改,更新显示,自然就会成100行的数据.所以我想你要说的隐藏其实是隐藏数据,我的建议就是对model进行手术,这样你甚至可以在不同的地方保留不同的数据,需要某些只要拿出来set给model,不需要的时候从model删除就可以.而不仅仅是jTable去考虑个人想法,欢迎讨论.
      

  3.   

    其实我想还是MVC中的任务分配问题,
    看你想把这个任务分配给谁来完成.当然,不同的分配会带来不同的实现小国以及复杂度.
      

  4.   

    /**
       * 隐藏JTable中一列
       * @param ptable
       * @param index 要隐藏的列,0表示第一列,
       * 注意隐藏某列后,该列原来在后面的列,如隐藏第0列后,原来的第1列就变成了第0列
       */
      public static void hideColumn(JTable ptable, int index)
      {
        if (index < 0 || index >= ptable.getColumnCount())
          return;
        TableColumnModel columnModel = ptable.getColumnModel();
        TableColumn column = columnModel.getColumn(index);
        ptable.removeColumn(column);
      }楼上的几位说的对,你的出发点有误,不过,以上的程序可以实现你的要求
      

  5.   

    对model动手术在数据量大地时候不是很方便,反复的移动数据费时费力。但是我也遇到过类似问题,并且在google中搜索过,table好像无法隐藏row。
      

  6.   

    computersim说得对呀,各位仁者见仁智者见智啦。我不想删除数据然后再插入数据,就是想隐藏不显示,数据实际上还在表内
      

  7.   

    to zxyfd2000() 
      谢谢你的回复,不过我的要求是要隐藏某些行,而不列
      

  8.   

    有一个变通的办法,可行不可行没试过:
    表对数据的显示,是通过Model的方法public Object getValueAt(int row, int col)来得到某行某列的数据的,所以在你自己的Model中可以改变次方法,如果你想隐藏几行,就在数据Vector或数组中添加几个空行(以免以后向下跳行时会出现索引异常);然后在getValueAt中得到由另一个自定义方法传过来的要隐藏的行的行号的数组或其他的数据结构,然后一个循环,如果参数row==这里边的某个行号,有一个全局变量allrow=row;此时应该allrow+=1;然后返回super.getValueAt(allrow,col)即可。也就是说控制数据时就是让他越过要隐藏的行直接取下一行,只是在表底部会出现没有数据的行。
      

  9.   

    如果视觉效果要求不是很高,可以通过setRowHeight(int row, int rowHeight) 来实现,但最小高度是1,不知道为什么?这样如果隐藏多的话就很难看,但比较方便。否则只能先删除数据,再恢复数据了。
      

  10.   

    gularess(无吃哪拉) 
    你的办法我以前也曾经试过,rows隐藏多的话不仅很难看,而且滚动起来就会非常的慢
    gz,up
      

  11.   

    大家都是高手,其实你可以看看关于jtable的帮助,写的很好,你要的功能也可实现。
      

  12.   

    to channing(channing_super) 
       我找过有关帮助但没有我需要的,如果你有这方面的经验可否指点一二?最好有实例说明
      

  13.   

    我的想法和coolskeeter差不多,为什么不考虑试试呢?
    一般的书里面只有隐藏列,隐藏行好象没有现成的方法把。
      

  14.   

    最好自己实现一个Model,这是最符合设计的,这也是Swing小组所建议的。Model是很好用的,不知道你是否知道如何在表格中实现树形的表格呢?多查点资料,掌握它,这是很有用的。而且,由于自己实现的Model,性能也不是问题。
    注意几个设计要点:
    对于getValueAt()方法的实现要简洁,原因是每一次的paint都将调用此方法,如果算法过于耗时将会影响性能,也要控制在其内尽量的不要抛出Exception。
      

  15.   

    我曾经变写过一个model, 可以实现你的要求,但是效果不好看,我后来也没有正式用它,你如果要可以发给你。
      

  16.   

    to computersim(古今万卷无永日)
     大侠呀,我该称呼你老兄还是老弟,多谢,.
      

  17.   

    to computersim(古今万卷无永日)
       东西已收到,thanks