我有一个绘画程序,我已经完成了所有按钮和滑块,但是我对实际绘画本身有问题。当我将光标拖过屏幕而不是一条完整的线时,我几乎得到了一条我不想要的虚线。下面是在JPanel
和BufferedImage
为MouseListener
代码:.drawLine()问题和缓冲图像
public void mouseDragged(MouseEvent e) {
Graphics g=buffered.getGraphics();
g.setColor(mycol);
Graphics2D graph=(Graphics2D)g;
BasicStroke stroke=new BasicStroke(30);
graph.setStroke(stroke);
// g.fillRect(xcor, ycor, 20, 20);
//varx=e.getX();
ycor=e.getY();
xcor=e.getX();
int bad=xcor;
int good=ycor;
graph.drawLine(xcor, ycor, bad, good);
// buffered.setRGB(xcor, ycor, mycol.getRGB());
repaint();
// g.drawLine(xcor, ycor, x, x)
repaint();
}
我看来,你提供了错误的参数给'的drawLine()'方法,因为值x1,y1是一样X2,Y2。因此,点就是你的情况,你应该做的是'mouseClick()'存储x1,y1,然后拖动get x2,y2。然后通过这两个'drawLine(xClicked,yClicked,xDragged,yDragged)',这将使该行出现在你的情况:-) – 2012-08-09 18:33:13