2012-03-02 2 views
2

나는 어디에서나 검색했지만 여전히 내 질문에 대한 답을 찾지 못하는 것 같습니다. 셀 렌더러와 셀 에디터에 관한 모든 것을 읽었지만 여전히 잘 모르겠다. JTable을 가지고 있는데, 사용자가 편집중인 셀을 분명히 볼 수 있도록하고 싶다. 기본적으로 JTable의 편집 된 셀은 더 어두운 테두리를 갖지만 배경을 녹색으로 만들고 싶습니다. 선택하면 녹색으로 만들 수 있지만 데이터 입력을 시작하자마자 녹색 배경이 사라지고 흰색 셀에 쓰고 있습니다.JTable에서 편집 된 셀의 배경색을 변경하는 방법은 무엇입니까?

데이터를 입력하는 중에도 셀 배경을 녹색으로 유지하는 방법을 찾도록 도와 주시겠습니까?

+1

왜 기본값보다 시각적 단서가 더 강합니까? @trashgod는 기술적으로 정확한 답변을 게시했습니다 (편집 구성 요소가 불투명하다고 가정).하지만 정확히 달성하고자하는 것은 무엇입니까? – kleopatra

+0

그것은 내 상사가하고 싶어하는 것입니다. 이전 프로그램은 이런 식으로 일했고 사용자가 익숙하기 때문에 이런 방식으로 유지하려고합니다. 그래서 사용자의 습관이 있습니다. – user1245697

답변

5

첫째, 테이블의 기본 선택 배경색 얻을 :

Color color = UIManager.getColor("Table.selectionBackground"); 

둘째,이 example 같이 prepareEditor()을 무시하고, 일치하는 편집기 구성 요소의 배경색을 설정 :

@Override 
public Component prepareEditor(TableCellEditor editor, int row, int col) { 
    Component c = super.prepareEditor(editor, row, col); 
    c.setBackground(color); 
    return c; 
} 

부록 : 기술적으로 올바르지 만 일반적으로 편집기 구성 요소의 색상은 활성화 된 상태에서 해당 UI 대리자에 의해 관리됩니다. 불행한 선택은 대비가 좋지 않고 사용성이 저하 될 수 있습니다. 목표물에 대한 철저한 테스트 & 느낌이 보장됩니다.

+0

좋은 대답 +1 – mKorbel

+0

@mKorbel : 고마워; 위의주의 사항을 추가했으며 어떤 생각이라도 환영합니다. – trashgod

+0

감사합니다. 훌륭한 작품 :) – user1245697

관련 문제