2008-10-13 32 views
31

Trình soạn thảo văn bản đa dạng thức phải được triển khai trong Java, cung cấp hỗ trợ Swing và tốt nhất là nguồn mở.Có ai có thể giới thiệu trình soạn thảo văn bản có định dạng Java không?

Tôi đang tìm cách tích hợp nó vào ứng dụng Java/Swing hiện có.

Cảm ơn.

+0

Tôi không có ý tưởng abt Swing, nhưng [jEdit] (http://www.jedit.org/) có vẻ là hoàn toàn Java .. Và nguồn mở của nó quá – nawfal

Trả lời

23

Đây có thể không phải là địa điểm thả xuống giống như những gì bạn đang theo dõi ... nhưng JTextPane hỗ trợ văn bản và HTML phong phú. Tầm quan trọng của nó để hiển thị hiển thị rtf hoặc html, chỉ cần đặt loại mã hóa trước khi bạn điền vào nó bằng nội dung.

Để tạo các nút "sửa đổi phong cách" nhỏ "B" và "I", tốt nếu nó rơi xuống, trong một nhúm khó có thể khiến bạn khó. Nghĩ JButton với các biểu tượng được đặt. Người nghe của họ có các vị trí chỉ mục bắt đầu và kết thúc lựa chọn của JTextPane như sau: jpane.getSelectionStart() hoặc jpane.getSelectionEnd() và sau đó chèn mở và đóng thẻ html/rtf tại các vị trí đó.

Hoàn tác cũng dễ dàng - duy trì một chồng nội dung chuỗi đơn giản của Jpanel, mỗi khi người dùng thực hiện hành động chỉnh sửa, history.push đơn giản (jpane.getText()) sẽ lưu trữ trạng thái và hoàn tác nút sẽ đơn giản như jpane.setText (history.pop()).

Tôi/bạn có thể tạo một cái với B, I & hoàn tác trong khoảng 30 phút tôi nghĩ - các nút khác như danh sách sẽ mất nhiều thời gian hơn, nhưng không nhiều.

+3

cách xử lý sao chép/dán văn bản được tạo kiểu với tiếp cận? –

7

Bạn có thể nhúng mẹ của tất cả các trình soạn thảo văn bản có mã nguồn mở trong ứng dụng Swing: OpenOffice.org cung cấp "OOBean", sử dụng bạn có thể nhúng một phiên bản OpenOffice đầy đủ trong ứng dụng Swing.

+3

Có lẽ quá mức cần thiết nhưng đó là giải pháp tối ưu nhất định: D –

+0

Nó hoạt động tốt. Nhưng không phải là một giải pháp dễ dàng, vì OOBean là một thành phần trọng lượng nặng trong khi Swing là trọng lượng nhẹ. Sự kết hợp của cả hai cơ chế không phải là lý tưởng. – lvr123

5

Tôi đã kiểm tra và tôi không thể tìm thấy tệp jar chỉ với trình chỉnh sửa văn bản trong đó. Tuy nhiên, heres có 2 tùy chọn khác

Tùy chọn A Sử dụng Swing và tự xây dựng. Swing có rất nhiều componenets đã được bảo hiểm trong javax.swing.text, mặc dù nó vẫn đòi hỏi một số lượng lớn mã. Tôi đã tìm thấy một ví dụ here

Tùy chọn B Mã scavenge từ dự án nguồn mở. Tôi đã tìm thấy 2 dự án với các trình soạn thảo kiểu HTML WYSIWYG thực sự tốt đẹp có thể được trích xuất (cả hai đều được chứa trong một vài lớp).

  1. Memoranda (GPL): Chỉnh sửa văn bản hoặc trong net.sf.memoranda.ui.htmleditor.HTMLEditor. Nó là một JPanel và chỉ sử dụng một lớp khác.
  2. Ekit (LGPL): Trình chỉnh sửa Html WYSIWYG đầy đủ tính năng của nó. Lớp com.hexidec.ekit.EkitCore của nó là một JPanel và có vẻ khá đa năng, mặc dù nó sử dụng rất nhiều các lớp khác từ gói.

Ngoài ra còn có một loạt các shortcut thương mại có sẵn, giả sử bạn có một ngân sách :)

4

Có một cái nhìn tại JWord hoặc JRichTextEditor

JWord là một swing thương mại soạn thảo văn bản phong phú, với các bảng, hỗ trợ phân trang và RTF/opendoc/XML. Cũng hỗ trợ đầu trang/chân trang, bố cục nhiều cột, xuất HTML, SVG, WMF, v.v.

JRichTextEditor là một tiện ích xoay nguồn mở, điều này khá tốt cho việc ghi chú. Hỗ trợ hình ảnh, một định dạng XML đơn giản để lưu trữ, xuất sang PDF, HTML. Không cao cấp như JWord, nhưng là nguồn mở.

Có thể trợ giúp.

10

Hãy thử MetaPhase editor, dựa trên số điện thoại HTMLDocumentEditor của Charles Bell. Đó là LGPL v3 được cấp phép và thật tuyệt vời, đặc biệt là ví dụ về việc sử dụng StyledEditorKit, đã thảo luận here.

+0

Trong khi nó có chứa một số lỗi, nó có đủ tính năng ra khỏi hộp .. Tôi đang tìm kiếm tại như thế nào mở rộng toàn bộ hệ thống là .. Có lẽ ai có thể squeeze một vài tính năng hơn (như thêm một hình ảnh từ ổ đĩa) .. – pek

+2

URL ở trên dường như đã chết, hãy thử cách này: http://kenai.com/projects/metaphaseeditor. –

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