Java BasicStroke“;模糊的;

Java BasicStroke“;模糊的;,java,graphics,applet,draw,paint,Java,Graphics,Applet,Draw,Paint,我正试图用Java编写一个简单的绘图小程序,但在BasicStroke方面遇到了问题。起初,我的计划是尝试以某种方式画一条有宽度的线,但API显然不支持这一点 我尝试使用BasicStroke,但结果只是一团模糊的混乱。如何解决这个模糊问题 private void mousedrag_hook(Point point) { if(start == null) start = point; end = point;

我正试图用Java编写一个简单的绘图小程序,但在
BasicStroke
方面遇到了问题。起初,我的计划是尝试以某种方式画一条有宽度的线,但API显然不支持这一点

我尝试使用
BasicStroke
,但结果只是一团模糊的混乱。如何解决这个模糊问题

private void mousedrag_hook(Point point)
    {
        if(start == null)
            start = point;

            end = point;

            Graphics2D g2d = (Graphics2D)applInstance.buffer_g;
            g2d.setStroke(new BasicStroke(7));

            //g2d.fillOval(point.x - 5, point.y - 5, 10, 10);
            g2d.drawLine(start.x, start.y, end.x, end.y);
            applInstance.repaint();

            start = end;
    }

别忘了:


我一点也不觉得模糊。事实上,恰恰相反:当一些反走样使它看起来笔直和柔软时,它看起来锯齿状和尖锐。另请参阅此相关内容。谢谢!有了抗锯齿和圆屁股,现在看起来好多了。但是,我注意到,使用MS Paint,完成笔划后,大部分“边”都会被删除,线条看起来更平滑。是否有一个简单的算法可以做到这一点?是的,在
通用路径中积累要点,如图所示。您可以通过单击左侧的复选框接受此答案,如中所述。
@Override
public void paintComponent(Graphics g) {
    super.paintComponent(g);
    Graphics2D g2d = (Graphics2D) g;
    g2d.setRenderingHint(
        RenderingHints.KEY_ANTIALIASING,
        RenderingHints.VALUE_ANTIALIAS_ON);
    ...
}