문제

나는있다 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).

묻기 전에 더 오래 찌르려면!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top