import java.awt.RenderingHints; //导入方法依赖的package包/类
/**
* Sets anti-aliasing to whatever the user's desktop value is.
*
* @see #getAntiAliasingEnabled()
*/
private void setDefaultAntiAliasingState() {
// Most accurate technique, but not available on all OSes.
aaHints = RSyntaxUtilities.getDesktopAntiAliasHints();
if (aaHints==null) {
Map temp =
new HashMap();
// In Java 6+, you can figure out what text AA hint Swing uses for
// JComponents...
JLabel label = new JLabel();
FontMetrics fm = label.getFontMetrics(label.getFont());
Object hint = null;
//FontRenderContext frc = fm.getFontRenderContext();
//hint = fm.getAntiAliasingHint();
try {
Method m = FontMetrics.class.getMethod("getFontRenderContext");
FontRenderContext frc = (FontRenderContext)m.invoke(fm);
m = FontRenderContext.class.getMethod("getAntiAliasingHint");
hint = m.invoke(frc);
} catch (RuntimeException re) {
throw re; // FindBugs
} catch (Exception e) {
// Swallow, either Java 1.5, or running in an applet
}
// If not running Java 6+, default to AA enabled on Windows where
// the software AA is pretty fast, and default (e.g. disabled) on
// non-Windows. Note that OS X always uses AA no matter what
// rendering hints you give it, so this is a moot point there.
//System.out.println("Rendering hint: " + hint);
if (hint==null) {
String os = System.getProperty("os.name").toLowerCase();
if (os.contains("windows")) {
hint = RenderingHints.VALUE_TEXT_ANTIALIAS_ON;
}
else {
hint = RenderingHints.VALUE_TEXT_ANTIALIAS_DEFAULT;
}
}
temp.put(RenderingHints.KEY_TEXT_ANTIALIASING, hint);
aaHints = temp;
}
// We must be connected to a screen resource for our graphics
// to be non-null.
if (isDisplayable()) {
refreshFontMetrics(getGraphics2D(getGraphics()));
}
repaint();
}