TableView가 정렬되거나 필터링되기 전에 TableView에서 선택한 행의 원래 인덱스를 가져 오는 방법이 있습니까? 그렇지 않다면, 대신 자신의 TableRow 객체를 만들고 선택할 때 가져오고 getOriginalRowIdex() 메서드를 가질 수 있습니까?TableView에서 선택한 TableRows 원본 인덱스 가져 오기
코드 tableView.getSelectionModel().getSelectedIndex());
은 정렬 및 필터링 된 데이터에 따라 선택한 인덱스를 반환하므로 행 인덱스를 목록의 인덱스와 일치시킬 수 없습니다.
tableView.setRowFactory(tv -> {
TableRow<ObservableList> row = new TableRow<>();
row.setOnMouseClicked(event -> {
if (event.getClickCount() == 2 && (!row.isEmpty())) {
label.setText(rowMessages.get(tableView.getSelectionModel().getSelectedIndex()));
System.out.println(tableView.getSelectionModel().getSelectedIndex());
}
});
return row;
});
원본 색인을 어떤 용도로 해결해야합니까? 일반적으로 필요한 모든 것은 TableView에 표시되는 모델 요소와 함께 저장해야하므로 추가 조회를하지 않아도됩니다. – eckig
데이터가 데이터베이스에서 동적으로 추가되므로 모델을 사용하지 않습니다. 각 행마다 고유해야하는 메시지가 있습니다. – miniHessel
각 행마다 고유해야하는 메시지를 가지고 있으며 모든 메시지를 문자열 목록에 저장합니다. 원래 행 인덱스가 있다면 그냥 list.get (originalIndex) – miniHessel