2009-11-24 36 views
10

Tôi có một ứng dụng xoay gửi lệnh đến máy chủ và nhận kết quả ở định dạng XML. Tôi cần phải chuyển đổi nó thành HTML thông qua XSLT và sau đó hiển thị kết quả HTML trên bảng điều khiển. Vấn đề là thành phần Swing duy nhất có thể hiển thị HTML - JEditorPane - lấy một trong hai URL hoặc javax.swing.text.StyledDocument như một nguồn. Tùy chọn với URL không hoạt động đối với tôi vì tôi phải lưu tệp html của mình dưới dạng tệp trên hệ thống tệp trước và tôi muốn tránh điều này.Làm cho html trong ứng dụng Swing

Vì vậy, tôi có khoảng cách giữa kết quả trong bộ nhớ của phép chuyển đổi XSL và javax.swing.text.StyledDocument, có thể được kết xuất bởi JEditorPane hoặc JTextPane.

Làm cách nào để chuyển đổi hình ảnh này sang hình thức khác? Hoặc là có bất kỳ giải pháp Swing khác để hiển thị HTML từ một số nguồn trong bộ nhớ (DOM hoặc String hoặc bất cứ điều gì)?

Cảm ơn bạn đã trợ giúp.

Trả lời

14

Có lý do gì khiến JEditorPane.setText() không hoạt động cho bạn không?

Tôi sử dụng JEditorPane mọi lúc và tôi chưa bao giờ lấy dữ liệu được hiển thị từ một tệp hoặc URL. Vì vậy, nó là có thể. Chỉ cần tìm ra lý do tại sao nó không hoạt động cho bạn.

Để cụ thể:

editor.setContentType("text/html");  
editor.setText("<html><body>Hello, world</body></html>"); 
+0

Cảm ơn rất nhiều. Tôi vừa bỏ lỡ tùy chọn này. Có lẽ, trong khi xem qua danh sách các phương thức, tôi đã vô tình quyết định rằng nó chỉ có thể xử lý văn bản thuần túy và chưa kiểm tra chi tiết javadoc. Cảm ơn một lần nữa –

+0

Những lớp học này quá phức tạp, tôi nghĩ vậy. JEditorPane là khá nghèo vượt ra ngoài một điểm nhất định. Thật không may, các tùy chọn miễn phí cho hiển thị HTML có xu hướng là LGPL. Trong trường hợp hạn chế đó ít quan trọng hơn chất lượng hiển thị thì có thành phần Cobra của Trình duyệt Lobo: http://lobobrowser.org/cobra.jsp Và tốt nhất là dự án DJ Native: http://djproject.sourceforge.net/ns/Nó kết nối Swing và SWT để truy cập thành phần trình duyệt gốc của hệ điều hành. – PSpeed

+0

Có, tôi đã thấy chúng, nhưng một lần nữa, LGPL không hoạt động với tôi –

2

gì về JeditorPane.setText()?

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