java字体倾斜_Java没有合成斜体字体
主要問題:
OpenJDK中是否有一個設置可以像Oracle JDK一樣合成斜體字體.
背景:
使用OpenJDK,在Graphics2D對象上繪制文本時,除非傾斜字體顯示在所需字體系列中,否則文本不會以傾斜樣式顯示. Oracle的JDK確實合成斜體字體.擺動部件也被合成.
筆記:
>粗體是合成的,粗體斜體只是粗體.
>我知道為獲得最佳效果,應注冊斜體字樣.對于已經利用合成字體外觀的應用程序,這可能不是一個完美的解決方案.
>關于JavaFX和字體的信息很多,這不是JavaFX,而是AWT.
這是一個說明問題的簡單類.
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.GraphicsConfiguration;
import java.awt.image.BufferedImage;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.UnsupportedLookAndFeelException;
public class SimpleFontTest {
private static Font FONT = new Font("Impact",Font.ITALIC,18);
private static String TEXT = "The Quick Brown Fox";
public static void main(String args[]) throws UnsupportedLookAndFeelException {
if (args.length > 0 && args[0] != null) {
String fontName = args[0];
FONT = new Font(fontName,18);
}
JFrame f = new JFrame("Simple Font Test: " + System.getProperty("java.vendor"));
f.setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE);
JLabel label = new JLabel("JLabel: " + TEXT);
label.setFont(FONT);
GraphicsConfiguration gc = f.getGraphicsConfiguration();
BufferedImage image = gc.createCompatibleImage(400,50);
Graphics2D g = image.createGraphics();
g.setFont(FONT);
g.setColor(Color.BLACK);
g.setBackground(Color.WHITE);
g.clearRect(0,image.getWidth(),image.getHeight());
g.drawString("BufferedImage: " + TEXT,10,15);
g.dispose();
JLabel picLabel = new JLabel(new ImageIcon(image));
f.add(label,BorderLayout.PAGE_START);
f.add(picLabel,BorderLayout.CENTER);
f.setSize(400,200);
f.setVisible(true);
}
}
輸出將取決于用于構建和運行該類的JDK.這是一個比較圖像:
感謝大家.
總結
以上是生活随笔為你收集整理的java字体倾斜_Java没有合成斜体字体的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端学习(2250)拉取代码文件
- 下一篇: 工作总结5:插槽的使用