gpt4 book ai didi

java - 使用 JDK 7 在 Swing 组件中消除文本锯齿

转载 作者:行者123 更新时间:2023-12-01 23:15:27 26 4
gpt4 key购买 nike

请告诉我如何在 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();
}
};

这不是工作!请帮忙。

最佳答案

使用系统属性的全局设置:

  System.setProperty("awt.useSystemAAFontSettings","on");
System.setProperty("swing.aatext", "true");

顺便说一句,如果您在根容器中覆盖 paint(Graphics g) (然后绘制组件、边框和子项),则覆盖应该有效,而不是paintComponent(图形g)

关于java - 使用 JDK 7 在 Swing 组件中消除文本锯齿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21289381/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com