2011-11-30 41 views
5

Tôi có một số thành phần tùy chỉnh với phương pháp được ghi đè quá mức paintComponent(Graphics g). Trong một số thành phần, phương pháp drawString() từ đối tượng Graphics g được sử dụng. Tôi muốn xác định phông chữ tùy chỉnh cho các chuỗi được vẽ như vậy.xoay tạo phông chữ

Tôi có các tệp * .ttf với các định nghĩa phông chữ loại thực. Tôi có một file css với các lớp phong cách, xác định phông chữ như:

.rosTexLogoTitle { 
    -fx-font: bold 20pt 'Tahoma Bold'; 
    -fx-text-fill: #246db6; 
    -fx-font-weight: heavybold; 
    -fx-padding: 0 10 0 0 

Tôi muốn xác định tất cả các thuộc tính từ css trong lớp java của tôi hoặc có thể có một cách để sử dụng phong cách trực tiếp từ css-file (không cần thiết).

Tôi đã cố gắng để tạo phông chữ với một constructor với tham số bản đồ:

public Font(Map<? extends Attribute, ?> attributes) { 
} 

Nhưng tôi đã không thành công. Tôi có thể tạo phông chữ tùy chỉnh với Font.createFont(style, path) sau đó có thể lấy được nó để đặt kích thước. Màu sắc có thể được đặt trong Graphics.setColor(). Nhưng tôi không thể đặt 'Tahoma Bold'.

+0

Câu hỏi của bạn là gì? –

+0

Cách đặt tất cả các thuộc tính phông chữ (tôi có chúng trong css) đúng cách. Tạo phông chữ từ * .ttf, sau đó lấy được và đặt kích thước và đặt màu thành đồ họa? Làm cách nào để đặt phông chữ? Làm thế nào để thiết lập gia đình? Làm thế nào để làm việc với Font constructor, có thuộc tính Map? Một phần khác của câu hỏi là làm mịn văn bản này, nhưng tôi muốn tạo một câu hỏi khác mb? –

+0

Khi tôi hỏi * "Câu hỏi của bạn là gì?" * Tôi có nghĩa là một câu hỏi ** đơn **, trái ngược với 5 câu hỏi. Chọn yêu thích của bạn. –

Trả lời

2

Bạn không thể đặt trọng lượng phông chữ hoặc gia đình; chúng chỉ được sử dụng để chọn tệp .ttf chính xác.

Vì vậy, giải pháp là sử dụng đúng .ttf tệp để bắt đầu. Ví dụ: họ phông chữ Arial có bốn tệp:

arialbd.ttf - Weight "Bold" 
arialbi.ttf - Weight "Bold", Slant "Italic" 
ariali.ttf - Slant "Italic" 
arial.ttf - Plain version 
1

bạn có tệp .ttf không? createFont (phong cách, File) trả về một chữ mới, sau đó u có thể thiết lập màu

u có thể sử dụng sun.awt.Win32GraphicsEnvironment.getAvailableFontFamilyNames() có được tất cả các phông chữ OS

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