그래서 JTable
으로 작업 중이므로 열 A-K이 있습니다. 및 이 유일한 편집 가능한 것입니다. 누군가가에 빈 행을 편집 할 경우, 나는 API 호출이 다음 B 내가 누군가 B에 빈 행을 편집 exists.If B, 내가하는 모든 행을 얻을 수있는 DB 호출을받을 수 있도록 the와 같은 호출이 해당 행의 DB에서도 검색됩니다. 이 호출은 0-N 행을 반환합니다. 0 행이 반환 된 경우 B을 제외한 모든 행의 값을 N/A로 변경합니다. 그렇지 않으면 데이터를 사용하여 행을 채 웁니다. 채워지면 모든 열을 편집 할 수 없게 만듭니다. DB 호출은 호출이 돌아 오면 내가 테이블 모델에 추가하는 자체 레코드 객체를 생성하기 때문에 자체 스레드에서 발생합니다.변경시 JTable로드 값,로드하는 동안 진행률 표시 줄
나는 데이터를 유지하고 변경된 값을 처리하기 위해 TableModel
과 TableModelListener
을 가지고 있습니다.
여기가 내 문제입니다. TableCellRenderer
을 사용하고 cellrenderer을 사용하여 값이 변경되었는지 확인합니다. 그렇다면 호출을 만들고 필요에 따라 채 웁니다. DB에서 많은 수의 행을 가져 오면 모든 레코드를로드하고 작성하는 데 약간의 시간이 걸리므로 ProgressBar
을 사용하여 사용자가 화면이 고정되어 있지 않다는 사실을 보여 주려고했습니다. . 그러나 나타나는 프레임은 공백이며 아무 것도 표시되지 않습니다. 부적절하게 또는 뭔가를 놓치고있는 느낌을받습니다. 많은 도움을 주셨습니다.
일부 코드
내가 서식 문제
흠, 미안하지만 분명히 자신을 설명하지 못했습니다. 결과 집합을 사용하고 레코드 개체를 만들려면 SwingWorker를 사용하고 있습니다. 그러나 스윙 워커의 테이블 모델에 레코드 객체를 추가하는 것이 아니라 테이블 셀 렌더러에 추가하는 것입니다. 사용자가 방금 편집 한 열에 집중하지 못하면 내 명령을 실행하고 일부 검색 후 원하는 코드를 찾았습니다. 당신이 추천 할 수있는 변경시 행을 업데이트 할 수있는 대체 방법이 있습니까? – dsymquen
이를 위해 'CellEditor'가 필요합니다. 이상. – trashgod
고마워, 나는 내 접근 방식이 최고라고 생각하지 않았다. 이것은 많은 도움이된다. – dsymquen