2012-03-22 4 views

答えて

5

JTableまたはDefaultTableModelを拡張し、isCellEditable(int row, int column)メソッドをオーバーライドし、ユーザーが編集できないようにするセルに対してfalseを返します。上記の方法は可能性があることMREさんのコメントどおり

@Override 
public boolean isCellEditable(int row, int column) { 
    if (column == 1) { 
     return false; 
    } else { 
     return true; 
    } 
} 

注:ユーザーが第二列を変更できるようにしたいしなかった場合、その後、あなたのような何かをしたい。例えば

、圧縮されたとして書き直さ:

@Override 
public boolean isCellEditable(int row, int column) { 
    return (column != 1); 
} 

ユーザーが任意のセルを編集できるようにしたくない場合は、単にこのメソッドは常にfalseを返してきた:

// anonymous inner class example 
TableModel ss = new DefaultTableModel(myArray[][], myHeaderArray[]) { 
    @Override 
    public boolean isCellEditable(int row, int column) { 
     return false; 
    } 
}; 
+1

最初の例では、単純に 'return!(column == 1);' – mre

+1

@mre:可能です。 :) –

+0

ありがとう、私のために働いた。 :) –

2

サブクラスを作成するか、DefaultTableModelの匿名バージョンを作成し、isCellEditableメソッドをオーバーライドします。