Java : Jtable 재정의 행 및 새로 고침
-
18-09-2019 - |
문제
나는있다 JTable
(확장) 및 구현 TableModel
, 나는 방법이 있습니다 ...
moveEntryUp(int rowIdx)
moveEntryDown(int rowIdx)
... 테이블 모델 구현 내에서. 나는 이것들이 제대로 작동하는지 확인했다.
그러나 테이블 모델의 변경 사항이 실제로 전파되는 데 문제가 있습니다. JTable
. 이 테이블에서는 단일 행 선택 만 허용하며 위로 그리고 아래에. 행이 선출되면 그 행을 위아래로 움직일 수 있어야합니다. 그리고 선택을 보존하십시오.
예를 들어
내 행이 있다면 [A, B, C(selected)]
, 그리고 나는 UP 버튼을 누릅니다.
나는 얻어야한다 [A, C(selected), B]
.
내가 지금까지 시도한 다양한 접근법은 JTable의 값을 새로 고치지 않거나 선택을 잃지 않습니다.
노트:
나는 명시적인 호출이 필요한 솔루션을 사용하는 것을 주저합니다. repaint()
.
모든 세포가 JTable
~이다 ~ 아니다 편집 가능한.
해결책
자신의 질문에 답 :
int row = mTable.getSelectedRow();
mTableModel.moveEntryUp(row);
mTable.getSelectionModel().setSelectionInterval(row -1, row -1);
어디에 mTable
jtable이고 mTableModel
내 테이블 모델 구현이며 mTable.getModel()
(및 typecast).
묻기 전에 더 오래 찌르려면!
제휴하지 않습니다 StackOverflow