2009-04-18 35 views
11

Tôi có một JTable lưu trữ các kết quả của một truy vấn cơ sở dữ liệu, cho đến nay rất tốt. Điều tôi muốn là cột cuối cùng trong mỗi bảng có JButton có thể nhấp sẽ mở màn hình chỉnh sửa cho đối tượng được biểu thị trong hàng đó và điều đó có nghĩa là nút sẽ cần biết chi tiết của cột đầu tiên trong bảng từ hàng riêng (ID từ cơ sở dữ liệu).Có thể bao gồm JButton trong JTable không?

Bạn có lời khuyên nào không? Tôi đã thử chỉ cần thêm JButtons nhưng họ đã biến thành văn bản khi tôi cố gắng chạy nó.

Trả lời

5

Trái ngược với hướng dẫn ở trên, có cách để thực hiện việc này mà không cần toán học định vị phức tạp, trình nghe chuột tùy chỉnh và mô hình bảng tùy chỉnh. Thay vào đó, nó có thể được thực hiện với một lớp tùy chỉnh đơn giản đơn sau đây mô hình mô tả ở đây:

http://web.archive.org/web/20100623105810/http://ivolo.mit.edu/post/A-Simple-Pattern-for-Embedding-Components-into-a-Swing-JTable.aspx

+1

điều này là tuyệt vời và rất hữu ích. – Epaga

+2

Liên kết đã chết, bạn vẫn có thể tìm thấy giải pháp đó ở bất kỳ đâu? – KristianMedK

+1

The Way Back Machine có một bản sao ... Nhưng giải pháp này dường như sử dụng một mô hình bảng tùy chỉnh (mặc dù vô danh), vì vậy tôi không chắc chắn ở cái nhìn đầu tiên những gì làm cho hướng dẫn này tốt hơn bất kỳ khác ... – Rini

1

Hãy xem phần giới thiệu của Sun về thành phần JTable, cụ thể là phần khoảng Editors and Renderers. Nó thảo luận về việc sử dụng thay thế CellRenderersCellEditors. Những gì bạn cần làm là tạo (hoặc mượn) ButtonCellRendererButtonCellEditor và sau đó áp dụng chúng cho cột được đề cập trong số JTable của bạn. Các ví dụ được tìm thấy trong các bài báo được liên kết sẽ cung cấp cho bạn tất cả thông tin bạn cần.

+0

thật dễ dàng ngoại trừ việc nhấp chuột để chuyển tiếp tới nút của ButtonCellRenderer. –

+2

Trình kết xuất không chấp nhận sự kiện. Đó là công việc của biên tập viên. Hãy xem hướng dẫn của tôi trong câu trả lời tôi đã đưa ra. – pek

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