以下代码与JDK5编译良好,但对于JDK7,它会抛出一个编译错误,称
"sun.font.FontDesignMetrics"是专用
FontUIResource fontUiResource = (FontUIResource) MyUI.get("MainTitle");
if (fontUiResource != null) {
FontDesignMetrics fontMetrics = new FontDesignMetrics(fontUiResource);
我正在使用Intellij 12,以防这是与问题相关的信息。
似乎构造函数在jdk6中是私有的。构造函数的JavaDoc说:"启用缓存是私有的——改为调用getMetrics()"。当使用不受支持的私有API时,这样的更改当然总是风险之一。
Graphics graphics = image.getGraphics();
FontMetrics metrics = graphics.getFontMetrics(font);
试试这个。