生成JTable时:
    JTable jTable1 = new JTable(new DbTableModel()){
        public boolean isCellEditable(int row, int column){
            return true;
        }
    };然后响应mouseClicked或者keyPressed事件

解决方案 »

  1.   

    楼上说的可以阿
    在返回true之前截获这个动作即可。
      

  2.   

    可以继承CellEditor中的方法isEditable(EventObject e)
    在这里你可以通过if来判断你想通过那个事件来控制
    表的Cell处于编辑状态。
      

  3.   

    我发的方法和楼主的要求不同
    jackkui(键盘上的武士) 说的应该可以
      

  4.   

    加ListSelectionListener,应该响应valueChanged()事件
    Public class youCclassName implements ListSelectionListener
    {
    private JTable customTable = new JTable(...);
    .....public void valueChanged(ListSelectionEvent e) 
    {
    ListSelectionModel lsm = (ListSelectionModel)e.getSource();
    if ( !lsm.isSelectionEmpty() )
    {
    int curRow = customTable.getSelectedRow();
    if( curRow == 0 )
    {
    //upBtn.setEnabled(false);
    //downBtn.setEnabled(true);
    }
    else
    {
    //downBtn.setEnabled(true);
    //upBtn.setEnabled(true);
    }
    if( curRow == customTable.getRowCount() - 1 )
    {
    //downBtn.setEnabled(false);
    } if ( !removeBtn.isEnabled() )
    {
    //removeBtn.setEnabled(true);
    }
    }
    }
      

  5.   

    哦,搞错了,我是设置鼠标一单击一个单元格即进入编辑状态,所以加上述事件才有用的!
    ((DefaultCellEditor)customTable.getCellEditor()).setClickCountToStart(1);
      

  6.   

    单元格编辑监听器应为:cellEditorListener()
    isCellEditable()为true说明单元格可编辑!