2011-04-26 2 views
2

GUI 응용 프로그램에서 JTable을 격자 위치로 사용하여 게임의 위치를 ​​나타냅니다. 개체의 특정 위치를 나타내는 테이블의 셀에 특정 색을 지정하고 일부 동작에서는 이동할 개체 (예 : Grid/JTable에서 이동하는 색 셀)를 원합니다. DefaultTableCellRenderer을 확장하는 클래스를 만들어 셀 색상을 변경할 수 있다는 것을 알고 있습니다. 이것이 유일한 방법일까요? 또는 셀 색상을 변경하는 더 간단한 방법이 있습니까 ?? 또한 JXTable은 이러한 응용 프로그램에서 JTable보다 우수합니까?TableCellRenderer를 사용하여 JTable 셀 색상을 변경하십시오.

편집 : 경우에 어떤 TableCellRenderer 나는 여전히 사용하고 함께 내가 버튼 클릭, 키보드 클릭 ... 등으로, 즉 동적으로 변경하기 위해 특정 세포 색상이 필요하다는 사실을 포함하지 않았다, 그 여전히 가능 JTable?

감사의 JTable로

+1

준비된 렌더러가 할 수 있습니다. – mKorbel

답변

3

는하는 DefaultTableCellRenderer 그것을 할 수있는 가장 좋은 방법입니다.

그러나 JXTable을 사용하면 형광펜과 사용자 지정 술어를 사용하는 것이 훨씬 쉬울 것입니다. 일반적으로 조건부는 셀 내용을 기준으로 색상을 지정하는 데 사용되지만 행/열 및 일부 외부 값을 기반으로 색상을 쉽게 지정할 수 있습니다.

줄무늬 표 및 패턴 일치 인 렌더링 및 강조 표시에서 http://www.jarvana.com/jarvana/view/org/swinglabs/swingx-core/1.6.2/swingx-core-1.6.2-javadoc.jar!/org/jdesktop/swingx/JXTable.html을 찾습니다. 기본적으로 패턴 하이 라이터와 동일한 작업을 수행하지만 본인의 Predicate를 사용합니다.

+0

어떻게 동적으로이 작업을 수행 할 수 있습니까? 셀 색상을 변경하는 단추를 클릭하거나 키보드 클릭 색상 변경 셀 색상을 변경해야하는 경우에도 동일한 방식으로 작동합니까? 고맙습니다 –

4

@mKorbel이 제안하고 Table Row Rendering에 표시된대로 prepareRenderer()을 사용하는 것이 좋습니다.

+0

하나의 셀 또는 셀 세트의 색상을 변경하기 위해 버튼 액션에서 prepareRenderer()을 사용할 수 있습니까? –

+0

예, 상태가 행 및 열의 순수한 함수이면. [이 답변] (http://stackoverflow.com/questions/5798980/jtable-disable-checkbox-in-cell/5799016#5799016)도 참조하십시오. – trashgod