2009-09-20 92 views
23

Tôi cần sử dụng phông chữ lớn hơn cho một trong các nhãn.Chỉ thay đổi kích thước phông chữ trong SWT

label.setFont(new Font(display,"Arial", 14, SWT.BOLD)); 

nhưng rõ ràng Arial không phải lúc nào cũng là phông chữ mặc định. Tôi muốn thay đổi kích thước và giữ mọi thứ khác ở các giá trị mặc định.

Tôi có thể làm một cái gì đó giống như

label.setFontSize(14); 

để tránh thiết lập các thông số khác? Hoặc tôi có thể ít nhất là tìm ra tên của phông chữ mà thực sự đang được sử dụng như mặc định?

Trả lời

35

Tôi tin rằng bạn có thể làm một cái gì đó giống như

FontData[] fD = label.getFont().getFontData(); 
fD[0].setHeight(16); 
label.setFont(new Font(display,fD[0])); 

Chừng nào không có nhiều hơn một phông chữ được trả lại, nên hoạt động.

31

Bạn có thể làm như sau:

FontData[] fontData = label.getFont().getFontData(); 
for(int i = 0; i < fontData.length; ++i) 
    fontData[i].setHeight(14); 

final Font newFont = new Font(display, fontData); 
label.setFont(newFont); 

// Since you created the font, you must dispose it 
label.addDisposeListener(new DisposeListener() { 
    public void widgetDisposed(DisposeEvent e) { 
     newFont.dispose(); 
    } 
}); 
+1

dispose (hình ảnh) làm cho không có ý nghĩa và có lẽ là một sao chép và dán lỗi – mkdev

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