2011-09-16 29 views
5

Tôi muốn hiển thị một số văn bản trong JLabel khi chạy. Tôi chỉ muốn biết rằng có anyway mà qua đó các văn bản được dispalyed trên nhiều dòng, ví dụ như tôi muốn văn bản của tôi được hiển thị ở định dạng sau:Có bất kỳ JLabel MultiLine nào tồn tại không?

Line 1 
Line 2 
Line 3 

String sText = "Line1 \n Line2 \n Line3"; 
jLabel1.setText (sText); 

Tôi đã thử mã trên nhưng nó không hoạt động. Tôi đang cho một số điều sai hoặc JLabel không hỗ trợ tính năng nói trên?

Trong trường hợp nếu tôi vẫn chưa thể đạt được các chức năng trên thì xin vui lòng hướng dẫn cho tôi làm thế nào để tôi thêm nhiều nhãn (một cho mỗi dòng) trong JPanel khi chạy

+2

Các tùy chọn khác là sử dụng JLabels dòng duy nhất nhưng đặt chúng trong một JPanel (container) có sử dụng một cách bố trí cho phép bạn ngăn xếp các JLabels, chẳng hạn như một GridLayout hoặc một BoxLayout. –

Trả lời

11

JLabel hỗ trợ HTML. Bạn có thể viết:

String sText = "<html>Line1 <br/> Line2 <br/> Line3</html>"; 
jLabel1.setText (sText); 

Edit: tôi đã thêm dấu gạch chéo lên với thẻ BR để làm cho mã làm việc

+1

Thx bro nhưng nó không làm việc trên máy tính của tôi :(Bất kỳ Mẹo? Tôi đang sử dụng NetBeans 7 và Win 7 – Jame

+1

@Jame, Hãy thử ' " Line1
Line2
Line3"' – mrkhrts

+0

Vui lòng thử mà không đóng thẻ trong 'br' Ngoài ra, hãy xem thẻ này: http://download.oracle.com/javase/tutorial/uiswing/components/html.html –

4

sử dụng <br> thay vì sử dụng \ n và tiền tố nó bởi <html> như thế này

"<html>Line1 <br> Line2 <br> Line3</html>"; 
+0

Lưu ý rằng để có hiệu lực (để được hiển thị dưới dạng HTML), 'Chuỗi' cần tiền tố' 'cho '
'. Nếu không +1. –

+0

Đã sửa bài đăng. downvote đã bị xóa. –

3

Một lựa chọn tốt hơn cho HTML định dạng văn bản trong trường hợp này, là để thả các ngắt dòng cứng (ngoại trừ ở cuối đoạn văn) và đặt chiều rộng của HTML bằng cách sử dụng CSS.

Như đã thấy trong ví dụ thứ 2 (LabelRenderTest.java) được hiển thị here.

JLabel with multiline, formatted, text.

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