java - Java 上的 Graphics2D 笔划尖峰

标签 java text graphics outline stroke

我遇到图形 2d 描边的问题,似乎没有人遇到这个问题,因为我搜索了类似的东西但没有结果。这是图片。

enter image description here

如您所见,我的划水有尖峰,我不想要那些。这是我的代码。

类扩展为JButton,方法为paintComponent。

    Graphics2D g2d = (Graphics2D)g2.create();
    TextLayout tl = new TextLayout(getText(), getFont(), g2d.getFontRenderContext());
    Shape to = tl.getOutline(null);
    int x = (getSize().width-to.getBounds().width)/2;
    int y = (getSize().height+(to.getBounds().height-8))/2;
    System.out.println(to.getBounds().height);
    g2d.translate(x, y);
    g2d.setStroke(new BasicStroke(15.0f));
    g2d.setColor(new Color(155,155,155));
    g2d.draw(to);
    g2d.dispose();

当降低笔画粗细时,尖峰也会变小。

最佳答案

您是否尝试过将 BasicStrokeJOIN_BEVELJOIN_ROUND 一起使用?您使用的默认连接是 JOIN_MITER,这可能是造成那些丑陋(很酷?)尖峰的原因。

关于java - Java 上的 Graphics2D 笔划尖峰,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23313487/

相关文章:

java - 如何将RabbitMQ数据返回给客户端(网站用户)

java - 带有请求正文问题的 HTTP 删除

java - java.net.SocketTimeoutException : Connect timed out 的奇怪情况

java - tf idf 相似度

Python翻译器,如何只替换一个单词

java - 如何使用 JList 以粗体打印项目的一部分

r - 从语料库中删除所有专有名词的有效方法

opengl - 重新创建窗口而不破坏上下文

在 C 中创建您自己的控制台图形库

javascript - 在 Javascript 中结束递归