Vấn đề: Tôi cần Bảng SWT (JFace TableViewer) với chiều cao hàng biến đổi. Trong thực tế, tôi đã giải quyết vấn đề này trên máy phát triển của mình (chạy Ubuntu 10.10). Thật không may, điều này không hoạt động trên Windows cũng như trên Mac.Bảng SWT với chiều cao hàng biến: Làm việc trên Linux, nhưng không phải Mac/Windows
Ban đầu, tôi nghĩ rằng tôi đã không sử dụng thư viện chính xác. Nhưng bây giờ tôi sợ rằng những gì tôi muốn làm chỉ đơn giản là không thể trên Windows. Tôi hy vọng một người nào đó ở đây thuyết phục tôi bằng cách khác.
Để tái sản xuất: thay vì cung cấp mã của tôi ở đây, tôi đã xây dựng một chương trình tối thiểu để tái tạo sự cố. Tôi bắt đầu với Snipplet sau:
tôi sửa đổi phương pháp cập nhật() để tạo ra hai dòng văn bản cho các thư mục và một dòng cho các tập tin (để mô phỏng một môi trường với chiều cao dòng biến):
... if (file.isDirectory()) { cell.setText(styledString.toString() + "\n" + styledString.toString()); cell.setImage(IMAGE1); } else { cell.setImage(IMAGE2); } ...
Điều này hoạt động như dự định trên Linux, nhưng trên Windows tất cả các hàng có cùng chiều cao. Cụ thể, chỉ có một dòng được hiển thị.
Tiếp theo, tôi đã cố gắng giúp SWT bằng cách làm cho phép đo() thông minh hơn. Vì vậy, tôi viết lại biện pháp() như sau:
protected void measure(Event event, Object element) { if (((File) element).isDirectory()) { event.height = 32; } else { event.height = 16; } super.measure(event, element); }
Kết quả: Tất cả các hàng đều có chiều cao 32. Một lần nữa, điều này hoạt động như dự định trên Linux.
Nỗi sợ của tôi là, trên Windows, tất cả các hàng phải có cùng chiều cao. Đây sẽ là một showstopper cho tôi. Ai có thể xác nhận điều này, hoặc thậm chí tốt hơn, cung cấp một workaround?
Cảm ơn!
Thực ra, tôi có thể đã tìm thấy một lời giải thích cho hành vi này, và thậm chí có một sửa chữa (tôi vẫn phải cố gắng này ra): https://bugs.eclipse.org/bugs/show_bug .cgi? id = 148039 – jastram
Cảm ơn tất cả các câu trả lời. Tôi đã kết thúc bằng cách sử dụng http://sourceforge.net/projects/agilegrid/, mà cũng thu hút các bảng nguyên bản, như KTable. Đó là một niềm vui để làm việc với, chắc chắn so với SWT. – jastram