을 허용하지 셀을 설정합니다자바 - JTable의 - 내가 같이 인스턴스화 모델과 함께 JTable가이 편집
배열이 생성됩니다TableModel ss = new DefaultTableModel(myArray[][], myHeaderArray[]);
. 그러나 현재로서는 셀을 편집 할 수 있습니다. 이 문제를 어떻게 방지 할 수 있습니까?
감사합니다.
을 허용하지 셀을 설정합니다자바 - JTable의 - 내가 같이 인스턴스화 모델과 함께 JTable가이 편집
배열이 생성됩니다TableModel ss = new DefaultTableModel(myArray[][], myHeaderArray[]);
. 그러나 현재로서는 셀을 편집 할 수 있습니다. 이 문제를 어떻게 방지 할 수 있습니까?
감사합니다.
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를 항상 반환이 방법이
DefaultTableModel
의 익명 버전을 만들거나 isCellEditable
메서드를 재정의하십시오.
첫 번째 예에서 'return! (column == 1);' – mre
@mre : 가능합니다. :) –
고마워, 나를 위해 일했다. :) –