2010-05-21 4 views
3

지금 내 Boolean 값은 JCheckBoxes으로 JTable 디스플레이에 대한 값입니다. 이 일반적으로 괜찮을 것이라고하지만 대체 String 또는 이미지로 표시하고 싶습니다. true/false로 표시되도록 설정할 수 있지만 true이면 체크 표시 (✔)로 표시하고 false이면 표시하지 않습니다. 이미지 일 수도 있지만 문자열을 먼저 처리 할 수 ​​있습니다.부울에 대한 Jtable/Column 렌더러 설정

답변

8

사용자 정의 렌더러를 만듭니다. DefaultTableCellRenderer를 확장하고 자신 만의 코드를 추가하여 원하는 것을 표시하십시오. 사용자 정의 아이콘 일 수도 있고 "확인 표시"가 인쇄 가능한 문자 인 경우 렌더러 텍스트를 적절한 문자로 설정할 수도 있습니다.

JTable API를 읽고 렌더러에 대한 자세한 정보를 제공하는 "테이블 사용 방법"에 대한 스윙 튜토리얼에 대한 링크를 찾을 수 있습니다.

더 많은 도움이 필요하면 SSCCE에 렌더러를 생성하는 데 문제가 있음을 게시하십시오.

편집 :

튜토리얼은 주어진 클래스의 사용자 정의 렌더러를 추가하는 방법을 보여줍니다하지만 특정 컬럼에 대한 사용자 지정 렌더러를 추가하는 방법을 보여주지 않습니다. 당신은 사용합니다 :

table.getColumnModel().getColumn(...).setCellRenderer(...); 
+0

table.setDefaultRenderer(Boolean.class, new BooleanRenderer(true)); 

어떻게 다음 열이를 추가하는 방법은 무엇입니까? http://pastebin.com/GzTQXrGU – twodayslate

+0

위의 수정 사항을 참조하십시오. – camickr

+0

그래서'BooleanRenderer (Format formatter)'을 만들 때 포맷터에 무엇을 넣을 까 ... – twodayslate

3

예 : BooleanRenderer

public class BooleanRenderer extends JLabel implements TableCellRenderer 
{ 
..... 
} 
+0

DefaultTableCellRenderer (2 시간 빨리 주어짐)를 연장하기위한 제 제안을 읽으십시오. 기본 렌더러를 확장하는 데에는 여러 가지 이유가 있습니다. 먼저 행 강조 표시, 셀이 포커스를받을 때의 테두리 강조 표시와 같은 기본 동작을 기본적으로 가져옵니다. 둘째, 기본 렌더러는 빠른 페인팅을 위해 최적화되었습니다. – camickr