Tôi tải font aller trong java với đoạn mã sau:Sự khác biệt về JLabel khi tải font chữ ttf giữa Windows và Linux
private Font loadFont(final String path) {
Font font = null;
InputStream fontFile = null;
fontFile = FontLoaderClass.class.getResourceAsStream(path);
if (fontFile != null) {
try {
font = Font.createFont(Font.PLAIN, fontFile);
} catch (FontFormatException e) {
LOGGER.error("Error with font format {}", e);
} catch (IOException e) {
LOGGER.error("Error accessing font {}", e);
}
}
return font;
}
Font được nạp một cách chính xác:
http://www.fontsquirrel.com/fonts/Aller
phông chữ được đặt thành tất cả ".font" thay đổi cài đặt mặc định cho ứng dụng java, nhưng trong Linux được hiển thị chính xác nhưng Windows thì không.
private Font buildFont(final String key, final int size) {
Font f = loadFont(ALLER_LT_FONT_PATH);
GraphicsEnvironment.getLocalGraphicsEnvironment().registerFont(f);
if (f == null) {
f = (Font) UIManager.get(key);
}
f = f.deriveFont(Font.TRUETYPE_FONT, size);
return f;
}
Linux cho thấy:
Windows hiển thị:
Như bạn có thể nhìn thấy trong hình ảnh, có một số cắt đứt trong Windows gây ra hình ảnh không được hiển thị một cách chính xác.
Có ai từng gặp phải vấn đề này trước đây không?
Tôi không thể thấy điều gì sai ... Chúng trông giống nhau ngoại trừ nhãn trên Windows có vẻ lớn hơn một chút. –
Trong cửa sổ rõ ràng là không trơn tru như trong linux. – RamonBoza
1. Sử dụng hình ảnh PNG thay vì JPEG trong trường hợp này. 2. Bạn có chắc chắn rằng sự cố không phải là do [cài đặt hệ thống cleartype] (https://www.google.com/search?q=windows+configure+anti+aliasing&aq=f&oq=windows+configure+anti+aliasing&aqs= chrome.0.57.12896j0 & sourceid = chrome & ie = UTF-8 # safe = off & sclient = psy-ab & q = windows + cấu hình + cleartype & oq = windows + cấu hình + clear & gs_l = serp.3.0.0i30j0i8i30l2.3729.4520.0.5901.5.5.0.0.0.0.289.1330. 2-5.5.0 ... 0.0 ... 1c.1.12.psy-ab.ZBXVMBdk6hA & pbx = 1 & bav = on.2, hoặc.r_cp.r_qf. & Bvm = bv.45960087, d.bGE & fp = fa702e9da3b617a & biw = 1600 & bih = 775) ? – Crozin