graphics Java如何使用Graphics2D制作抗锯齿线?
我试图用Graphics2D制作一个画板,在MouseMotionlistener方法mouseDragged中,我从两个点(起点和终点)绘制一条线,但每当我添加这条线时,它看起来都非常粗糙。我用它来帮助抗锯齿,但它似乎什么也没做
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
但这对高StrokeValue没有任何帮助。 这是我画画的代码
public void mouseDragged(MouseEvent e) {
//sets up graphics2d object
g2 = (Graphics2D)getGraphics();
g2.setStroke(new BasicStroke(strokeSize));
g2.setColor(color);
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
//draws line using points and shapes
endPoint = e.getPoint();
Shape line = new Line2D.Double(beginPoint, endPoint);
g2.draw(line);
beginPoint = endPoint;
beginPoint在mousePressed中被赋予一个值
# 1 楼答案
有很多(非常酷的)渲染提示!我建议你开始尝试所有这些方法,看看什么组合能给你带来想要的结果
警告
g2 = (Graphics2D)getGraphics();
是一个非常非常糟糕的主意,而不是定制绘画的工作方式getGraphics
只不过是上一次喷漆过程中最后一次喷漆的快照,将在下一次喷漆过程中失效我强烈建议通过阅读Performing Custom Painting和Painting in AWT and Swing来更好地理解Swing中的绘画是如何工作的,以及你应该如何使用它
用鼠标画画是一个很常见的问题,有很多答案。我建议大家看看其他一些问题/答案,看看如何做到这一点,并根据自己的需要加以采纳