呜~~~~~~
没人搞JAVA SWING的吗?
这问题已经困扰我好久了!

解决方案 »

  1.   

    JTable里面有个属性,可以设置以下,COLUMN就不可以移动
      

  2.   


        解释一下你的第一个问题,我没明白你说的before valuechange是什么意思?    2:jTable.getTableHeader( ).setReorderingAllowed( false );就可以让你的table列不能拖动了,如果你也不想改变列的长度,就把他的长度也设定为固定值。
      

  3.   

    好象没有这样的事件,不过你应该可以通过继承tableModel来实现,每次修改model的值以前进行捕获,可以否?
      

  4.   

    ouyangdong(萧十八郎) :谢谢你的回答,我解释一下第一个问题的意思:
    JTable.getSelectionModel().addListSelectionListener(new ListSelectionListener()
    public void valueChanged(ListSelectionEvent e)
    它只有valueChanged事件,但我不想它在Changed后才开始执行我的代码,
    我希望它在没滚动前就执行我的代码,也就是我说的Befort valueChange
    用过DELPHI吗?就象它的Table控件,它就有BeforeScroll事件.
      

  5.   

    tainy_zhang(tainy_zhang) :
    跟tableModel有关系吗?
    ,它只是JTABLE的滚动事件,没改变MODEL.
    请你说清楚点,谢谢.
      

  6.   

    哦,在valueChanged方法中,只有你改变了选择的行,而选择另一行时蔡响应。比如,开始你选择行A,然后当你选择行B后,这个事件响应,这时候table中被选定的是B,你得不到A的信息,你的意思是党你要选择B的时候就响应事件,而且能够得到A的信息.如果是这样,你可以使用鼠标的事件。  我没用过Delphi,不知道他的beforescroll到底有什么特殊性。
      

  7.   

    ouyangdong(萧十八郎) :谢谢你的回答,
    但鼠标事件有它的特殊性,那就是必须用鼠标,但jtable 的 selection事件是不光是鼠标的,它更注重的是改变,而不是方式,不管你用键盘还是鼠标它都会监听到.
    所以除非我把它滚动的所有方式都监听,但那样不太好,因为这样毕竟会有想得不够全面的时候的.
    所以还是不太明白怎么去弄,可能要不同问题不同分析了,用其他方法实现.可能是我用得不好,JAVA SWING 有时在事件处理上有些会用得不太顺手.
    其实我也没怎么用过DELPHI,呵.