2012-03-22 1 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; 
    } 
} 

참고 : 2 열을 수정할 수 있도록 사용자를하지 않은 경우

는 예를 들어, 당신은 뭔가를 할 것 압축 재 작성된 :

// anonymous inner class example 
TableModel ss = new DefaultTableModel(myArray[][], myHeaderArray[]) { 
    @Override 
    public boolean isCellEditable(int row, int column) { 
     return false; 
    } 
}; 
: 당신은 사용자가 임의의 셀을 편집 할 수 있도록하지 않으려면

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

후 false를 항상 반환이 방법이

+1

첫 번째 예에서 'return! (column == 1);' – mre

+1

@mre : 가능합니다. :) –

+0

고마워, 나를 위해 일했다. :) –

2

DefaultTableModel의 익명 버전을 만들거나 isCellEditable 메서드를 재정의하십시오.

관련 문제