2010-04-17 38 views
13

Tôi có Jtable mà trên đó tôi đã gọi phương thức table1.setAutoCreateRowSorter(true);. Vì vậy, điều này hoạt động tốt. Nhưng tôi cũng có một methos trong lớp JFrame của tôi được kích hoạt khi tôi nhấn một nút. Nó nhận được các chỉ mục hàng đã chọn bằng cách sử dụng mã này int selectedRows[] = this.table1.getSelectedRows();. Và hiển thị cửa sổ chỉnh sửa cho hàng đầu tiên tương ứng trong khoảng thời gian đã chọn.Java: Chỉ mục của các hàng đã chọn không thay đổi khi được sắp xếp

Vấn đề là nếu tôi không bấm vào tiêu đề của cột (tôi có nghĩa là tôi không phân loại chúng ở tất cả) phương pháp của tôi hoạt động hoàn hảo. Nhưng khi tôi sắp xếp hàng, các chỉ mục của các hàng dường như không thay đổi chút nào - do đó, kết quả là cửa sổ chỉnh sửa cho hàng cũ đã xuất hiện ở vị trí đó trước khi thực hiện bất kỳ loại nào.

Tôi đang sử dụng JDK 6 có thể anyonw cung cấp cho ma một mẹo?

Trả lời

17

Mô hình cơ bản không thay đổi thứ tự. Chỉ thay đổi chế độ xem. Bạn có thể đọc thêm về điều này trong Sun's tutorial. Bạn sẽ cần phải sử dụng JTable.convertRowIndexToView() và JTable.convertRowIndexToModel().

+0

Cảm ơn các bạn bây giờ tôi có thể tìm thấy giá trị đã chọn đúng bằng cách sử dụng 'table1.getModel(). GetValueAt (table1.convertRowIndexToView (selectedRows [i]), 0);' – adrian7

5

Bạn cần sử dụng convertRowIndexToView(int)convertRowIndexToModel(int) để chuyển đổi chỉ số mô hình (dữ liệu cơ bản) và xem chỉ mục.

Các vấn đề liên quan