请告诉我如何启用Swing组件中的文本反别名(使用JDK 7),而不是重写方法paintComponent()父类。若要阅读有关此主题的内容,请参阅此方法。
putClientProperty(
com.sun.java.swing.SwingUtilities2.aa_text_property_key, Boolean.TRUE);需要一个包com.sun.java.swing.SwingUtilities2,这在JDK早期的第5版中是没有的。不想在项目中包括过时的方法和库,请告诉我现在使用了哪些方法来平滑组件的文本(类似的putClientProperty())。
请不要写关于使用方法的文章
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_On);
//or
g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIAsing,
RenderingHints.VALUE_TEXT_ANTIALias_on);因为即使重写了paintComponent()父类,它们也不能工作,下面的示例如下所示:
JButton button = new JButton("Button X O") {
@Override
public void paintComponent(Graphics g){
Graphics2D g2d = (Graphics2D) g;
//g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
//RenderingHints.VALUE_ANTIALIAS_On);
g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
RenderingHints.VALUE_TEXT_ANTIALIASING_ON);
super.paintComponent(g2d);
g2d.dispose();
}
};这不是工作!拜托救救我。
发布于 2014-01-22 17:11:55
使用系统属性的全局设置:
System.setProperty("awt.useSystemAAFontSettings","on");
System.setProperty("swing.aatext", "true");顺便说一句,如果您重写paint(Graphics g) (然后将组件、边框和子绘制)在根容器中而不是paintComponent(Graphics g)中,则重写应该有效。
https://stackoverflow.com/questions/21289381
复制相似问题