2012-10-02 33 views
14

Trong Swing, việc tạo kiểu một nhãn JLabel bằng cách sử dụng HTML rất đơn giản - bạn chỉ cần sử dụng HTML mà bạn muốn làm văn bản cho nhãn và được hiển thị phù hợp.Nhãn tạo kiểu JavaFX HTML (hoặc tương đương)

Trong JavaFX, tính năng này không khả dụng, nhưng chúng tôi có thể đặt kiểu của nhãn cụ thể (hoặc nút nói chung) bằng phương pháp setStyle().

Tuy nhiên, sử dụng phương pháp này đó là không rõ ràng làm thế nào để thiết lập một phần của một nhãn trở thành một phong cách nhất định, ví dụ như tương đương với:

JLabel label = new JLabel("<html>Part of this <b>text is b</b>old and part isn't.</html>"); 

Điều gì sẽ là cách dễ nhất để đạt được một cái gì đó giống như trên ?

+0

Có thể dublicates [Hãy phần của một văn bản in đậm trong một Label JavaFX hoặc Text] (http://stackoverflow.com/q/12341672/682495) và [Làm nổi bật các chuỗi trong JavaFX TextArea] (http://stackoverflow.com/q/12346009/682495) –

Trả lời

8

Bộ chọn giả có thể là một công việc xung quanh nhưng rất tiếc phần lớn chúng chưa được hỗ trợ - http://docs.oracle.com/javafx/2/api/javafx/scene/doc-files/cssref.html#introlimitations. Đối với Hỗ trợ văn bản đa dạng trong các điều khiển, chúng sẽ được cung cấp bởi JavaFX8 - https://bugs.openjdk.java.net/browse/JDK-8091709.

+0

liên kết cũ đến kenai.com –

+1

Đã cập nhật liên kết cũ. – Avik

7

Bạn có thể thử sử dụng TextFlow để kết hợp các nút văn bản theo kiểu khác nhau như

TextFlow textFlow = new TextFlow(); 

Text first=new Text("Part of this "); 
first.setStyle("-fx-font-weight: regular"); 

Text second=new Text("text is b"); 
second.setStyle("-fx-font-weight: bold"); 

Text third=new Text("old and part isn't."); 
third.setStyle("-fx-font-weight: regular"); 

textFlow.getChildren().addAll(first, second, third); 
+0

vâng, tôi thấy rằng, nó có thể phù hợp với mô hình nội bộ JavaFX tốt hơn, nhưng nó thật khủng khiếp đối với các nhà cung cấp nội dung. Tôi chỉ muốn cung cấp cho nhà phát triển Tôi đang làm việc với một số nội dung văn bản đa dạng thức trong một tệp cấu hình và để anh ta sử dụng nội dung đó trong Java. –

+0

Jason, hãy thử googling "JavaFX Markdown", có thể hoặc có thể không hỗ trợ bạn trong việc phát triển một giải pháp. – jewelsea

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