Java: JTextPane

Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực

JTextPane là thành phần văn bản có hỗ trợ văn bản được style. Nó tương tự với JTextArea khi hiển thị nhưng JTextArea chỉ có thể hỗ trợ plain text.

JTextPane có thể hỗ trợ plain-text, HTML, RTF (Rich Text Format) và các thành phần như nút lệnh hay biểu tượng. Văn bản cũng có thể là là các style khác nhau được trộn lẫn.

Bảng dưới đây trình bày các hàm tạo của JTextPane.

Hàm tạo Mô tả Ví dụ
JTextPane() Tạo một JTextPane với tài liệu được thiết lập là null. JTextPane txpText;
txpText = new JTextPane();
JTextPane(StyledDocument doc) Tạo một JTextPane với tài liệu doc là đối số có kiểu StyledDocument. JTextPane txpText;
StyledDocument doc = new DefaultStyledDocument();
. . .
txpText = new JTextPane(doc);

Nạp văn bản vào JTextPane

Các bước nạp văn bản vào JTextPane như sau:

1. Truy xuất StyledDocument của JTextPane bằng cách sử dụng phương thức getStyledDocument().

2. Tạo và khởi tạo các style.

3. Thêm style vào style-document.

4. Nạp văn bản bằng phương thức insertString() tới tài liệu đã được style.

Đoạn mã sau thể hiện cách nạp văn bản vào JTextPane.

JTextPane txpPane = new JTextPane();

// Truy xuất StyledDocument
StyledDocument doc = txpPane.getStyledDocument();

// Để khởi tạo style thì trước tiên cần truy xuất vào defaultstyle
Styledef = StyleContext.getDefaultStyleContext().getStyle(StyleContext.DEFAULT_STYLE);

// Sau đó thêm một style chính quy với font là 'SansSerif'
Style regular = doc.addStyle(“regular”, def);
StyleConstants.setFontFamily(def, “SansSerif”);

// Chèn văn bản vào JTextPane bằng cách sử dụng tài liệu đã được style
doc.insertString(doc.getLength(),“Thisisregulartext”, doc.getStyle(“regular”));

Lưu ý: Các style có thể là regular, italic, small và cũng có thể bao gồm các thành phần như JButton.

Hiển thị JTextPane

Để hiển thị JTextPane thì ta truyền một thể hiện của JTextPane tới hàm tạo của JScrollPane, sau đó thêm JScrollPane vào bộ chứa.

Nếu muốn ngăn chặn không cho biên soạn trong JTextPane thì ta sử dụng phương thức setEditable() với đối số là giá trị false.

Đoạn mã sau đây thể hiện cách hiển thị JTextPane và ngăn chặn không không biên soạn.

JFrame frmEditor;

JTextPane txpPane;

// Cung cấp text pane cho scroll pane để thiết lập thanh cuộn
JScrollPane scpScroller = new JScrollPane(txpPane);

// Thêm JScrollPane vào frame
frmEditor.getContentPane().add(scpScroller);

// Không cho phép biên soạn JTextPane
txpPane.setEditable(false);

» Tiếp: Cách sử dụng đường bao (Border)
« Trước: Cách sử dụng HTML trong Swing Component
Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực
Copied !!!