2012-08-07 2 views
1

내 JTable의 모든 셀을 강조 표시하지 않고 편집을 비활성화하려고합니다.어떤 방법으로 접근합니까?

I 웹 사이트에서 다음의 예를 가지고가 예상대로 작동합니다

DefaultTableModel model = new DefaultTableModel(data, new String[]{"First header", "Second header", "Third Header"}); 

JTable table = new JTable(model) 
{ 
    public boolean isCellEditable(int rowIndex, int colIndex) 
    { 
     return false; 
    } 
}; 

어떤 일이 바로 테이블 변수의 인스턴스 후?

인스턴스 메소드 을 무시하는 것일까 요? 셀셀 편집 가능?

+0

이것은 ** 익명의 클래스 ** 인스턴스입니다. –

답변

3

anonymous class이라고합니다. JTable을 확장하고 isCellEditable 메서드를 재정의하는 클래스의 인스턴스입니다.

1

JTable에서 파생 된 익명의 클래스가 생성됩니다. 코드의

는 :

public ExistingClass x = new ExistingClass { ... } 

이것은 실제로 ExistingClass로부터 유도 된 클래스를 생성한다. 단일 파생 인스턴스를 제공하는 간결한 방법입니다. 위의 예제에서는 하나의 메서드를 재정의하기 만하면됩니다.

1

당신은 Anonymous Class를 인스턴스화됩니다

익명 클래스는 이름이없는 로컬 클래스입니다. 익명 클래스 은 new 연산자를 사용하여 하나의 간결한 표현식으로 정의되고 인스턴스화됩니다.

네, 여기서 메소드를 오버라이드하고 있습니다.

관련 문제