Budowałem środowisko programistyczne w Javie (jako mały projekt badawczy). W ramach tego, zbudowałem komponent niestandardowy tekst, który czerpie z samego tekstu przy użyciu Graphics2D tak:Dlaczego czcionki w java 1.7 różnią się od 1.6?
g2.drawString("some text", 100, 100);
Wszystko działało dobrze rozwija rzeczy w Eclipse przy użyciu 1,6 (zakładam, że jest to przewidziane przez Apple), dopóki nie pakuje wszystko się skończyło i uruchomiłem java 1.7 (dostarczone przez Oracle). Oczywiście w środowiskach programistycznych czcionki są dość ważne, więc nie podobało mi się, aby zobaczyć wyniki w 1.7.
Próbowałem opakowanie niestandardowe czcionki, ale wszystkie one są ziarniste i erozji. Powyższe porównanie nie jest takie złe, ale niektóre czcionki (takie jak Monaco) wyglądają okropnie.
Zgaduję, że ma to związek z tym, jak Apple haczy rzeczy do Kwarcu. Ale czy istnieje sposób na ulepszenie, aby nie wyglądało to okropnie na innych systemach? Czy ktoś ma na to strategię?
Aktualizacja: To porównanie w Monako:
i powiększony Porównanie C (w paintComponent) w Monako (1,7 na lewo, na prawo 1.6). Zauważ, że wczytuję czcionkę z lokalnego pliku ttf używając:
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("monaco.ttf");
Font customFont = null;
try
{
customFont = Font.createFont(Font.TRUETYPE_FONT, is);
customFont = customFont.deriveFont(16.0f).deriveFont(Font.BOLD);
is.close();
ge.registerFont(customFont);
} catch (FontFormatException e1)
{
e1.printStackTrace();
} catch (IOException e1)
{
e1.printStackTrace();
}
this.setFont(customFont);
Należy również zauważyć, że anty aliasing jest włączony przy użyciu:
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
używają tej samej czcionki? –
może używają innej domyślnej czcionki?poprosił o – JohnnyAW
Podobne pytanie: http://superuser.com/questions/112326/why-do-the-fonts-in-the-java-application-im-running-look-different-in-mac-os-x – Goibniu