Object [] [] 배열로 채워진 DefaultTableModel이 있습니다.DefaultTableModel에 CheckBox 추가하기
이제 checkBoxes와 함께 열을 추가하고 이에 따라 작업을 수행하려고합니다. 내가 개체 [] [] 배열에 체크 박스를 추가하고 볼 때
, 내가 텍스트
표시 얻을 'javax.swing.JCheckBox을 [0,0,0x0 ...', 어떻게 할 확인란을 표시하고 작업에 추가 할 수 있습니까?
Object [] [] 배열로 채워진 DefaultTableModel이 있습니다.DefaultTableModel에 CheckBox 추가하기
이제 checkBoxes와 함께 열을 추가하고 이에 따라 작업을 수행하려고합니다. 내가 개체 [] [] 배열에 체크 박스를 추가하고 볼 때
, 내가 텍스트
표시 얻을 'javax.swing.JCheckBox을 [0,0,0x0 ...', 어떻게 할 확인란을 표시하고 작업에 추가 할 수 있습니까?
JTable의 부울 값에 대한 기본 체크 박스 렌더러/편집기가 여기를 참조하십시오. 주어진 열에 대해 TableModel#getColumnClass
을 Boolean.class
으로 보내주십시오.
아니요 모델 객체 [] 배열로 스윙 구성 요소를 제공 할 수 없습니다. 그것은 열에 셀 편집기로 등록되어야합니다.
어쨌든 DefaultTableModel은 부울 클래스 유형 값이 저장되는 열의 편집기로 확인란을 지원합니다.
그래서 배열에서 Boolean.TRUE/Boolean.FALSE 객체를 전달하고 편집 가능한 테이블로 설정합니다. 그런 다음 테이블이 자동으로 확인란을 렌더링합니다.
는가 어떻게이 체크 박스를
참조 Uhlen의 대답
을 표시하고 여기에 작업을 추가합니까 각 클래스 유형에 대한 편집기를 등록 할 필요가 있습니까?
TableModelListener를 사용하십시오. 예 :
public void tableChanged(TableModelEvent e)
{
if (e.getType() == TableModelEvent.UPDATE)
{
int row = e.getFirstRow();
int column = e.getColumn();
if (column == ?)
{
TableModel model = (TableModel)e.getSource();
Boolean value = (Boolean)model.getValueAt(row, column));
if (value.booleanValue())
// add your code here
}
}
}
각 반환 형식을 하드 코딩하는 대신 클래스를 가져올 수도 있습니다. 상자를 만드는
이data[i][12] = new Boolean(false);
나는이 시도
: 선택 해제 나타납니다 테이블을 만들 때
다음, 당신은 이런 식으로 초기화 다음은 재정의 메서드에 대한 예입니다 ,하지만 단지 "false"라는 문자열을 출력합니다 : ( – Vivek
TableModel # getColumnClass를 구현하지 않았기 때문에 가능성이 높습니다. 내 대답 참조 :) – Uhlen