Khi người dùng nhấp vào một ô trên JTable
, làm cách nào để tìm ra hàng và cột của ô được nhấp? Làm cách nào để hiển thị thông tin này trong một số JLabel
?Xác định ô JTable nào được nhấp vào
Trả lời
bạn đã thử addMouseListener()
chưa? Tôi hy vọng bạn đang sử dụng JTable của Swing.
Bạn có thể sử dụng phương pháp sau đây trên JTable để lấy hàng và cột của ô đã chọn:
int rowIndex = table.getSelectedRow();
int colIndex = table.getSelectedColumn();
Và thêm một SelectionListener
bảng để bắt sự kiện khi bảng được chọn.
+1, ngoại trừ ListSelectionListener được thêm vào ListSelectionModel, không phải JTable. – camickr
Bạn cũng có thể muốn thêm ListSelectionListener vào cột ColumnModel của JTable trong trường hợp hàng đã chọn vẫn giữ nguyên các thay đổi cột đã chọn: table.getColumnModel(). GetSelectionModel(). AddListSelectionListener (...); – Uhlen
Câu trả lời hiện có hiệu quả, nhưng có một phương pháp thay thế có thể hoạt động tốt hơn nếu bạn không bật lựa chọn ô. Bên trong số MouseListener
của bạn, hãy làm điều gì đó như sau:
public void mouseClicked(java.awt.event.MouseEvent event) {
int row = theTable.rowAtPoint(event.getPoint());
int col = theTable.columnAtPoint(event.getPoint());
// ...
Nó làm việc cho tôi !!!
jTable1.addMouseListener(new java.awt.event.MouseAdapter() {
@Override
public void mouseClicked(java.awt.event.MouseEvent evt) {
int row = jTable1.rowAtPoint(evt.getPoint());
int col = jTable1.columnAtPoint(evt.getPoint());
if (row >= 0 && col >= 0) {
}
}
});
Tôi đã thấy rằng khi cột bị ẩn/sắp xếp lại columnAtPoint
trả về chỉ mục cột hiển thị, không phải là thứ tôi cần. Mã làm việc cho tôi là
int row = theTable.convertRowIndexToModel(theTable.rowAtPoint(event.getPoint()));
int col = theTable.convertColumnIndexToModel(theTable.columnAtPoint(event.getPoint()));
- 1. Làm cách nào để xác định ô nào trong JTable đã được chọn?
- 2. Nhấp vào sự kiện trên jTable -Java
- 3. Đặt JToggleButton với JPanel vào trong ô JTable
- 4. ActionListener trên JLabel hoặc ô JTable
- 5. Thay đổi màu ô JTable
- 6. Cập nhật ô JTable không hoạt động
- 7. Cách thêm chú giải công cụ vào ô trong jtable?
- 8. jTable nhấp chuột phải vào trình đơn bật lên
- 9. jQuery-JTable: thêm vào sự kiện nhấp chuột cho hàng?
- 10. Đặt tất cả các ô JTable không thể chọn được
- 11. Xác định từ nào được nhấp trong văn bản android
- 12. Làm một nhấp được JButton bên trong một JTable
- 13. Làm cách nào để xác định xem trẻ có được nhấp vào trong Jquery
- 14. Lấy các giá trị từ ô JTable
- 15. xóa các đường viền ô trong jtable
- 16. Viết JTable vào Excel
- 17. Cách đánh dấu đầu vào ô JTable là không hợp lệ?
- 18. Tùy chỉnh định dạng ô PHPExcel chỉ hiển thị sau khi nhấp đúp vào
- 19. Xác định sự kiện nhấp cho UISegmentedControl
- 20. Căn chỉnh giá trị của các ô trong JTable?
- 21. Yêu cầu xác nhận khi nút "X" được nhấp vào
- 22. Định dạng số biên tập viên JTable
- 23. JButton trong ô JList không thể nhấp vào
- 24. Xác định đơn lẻ trong mảng ô
- 25. Làm thế nào để chèn một hình ảnh vào Excel ở vị trí ô được xác định với VBA
- 26. iPhone - Cách xác định một ô được nhấn trong một UITableViewCell tùy chỉnh
- 27. Phát hiện ô nào đã được nhấp trong TDBGrid khi dgRowSelect được đặt thành True?
- 28. xóa lưới jtable (đường viền ô) hoàn toàn
- 29. Cách để JTable ở trên ô đã chỉnh sửa
- 30. Đặt con trỏ chuột cho một ô JTable cụ thể
vâng tôi đang sử dụng Swing và không, tôi chưa thử addMouseListener. sẽ cố gắng ngay bây giờ ... cảm ơn. – Cristian
điều này khá khó hiểu, bạn có thể đưa ra một số gợi ý hoặc một số liên kết không? Tôi đã tìm kiếm và không có kết quả. Tôi chỉ muốn hàng & cột của jTable được chọn sẽ được thêm vào trong một jLabel ..... – Cristian
Tôi không nghĩ là một cách hay để giải quyết vấn đề. MouseEvent sẽ không dễ chuyển đổi sang cột và hàng. Xem câu trả lời của Develman. – jzd