JavaでStrokeを変更してお絵かきするとプルプルする現象の対策

大分意味不明なタイトルですが、Javaでお絵かきソフトを作る際に少し躓いたところの対策メモです。 まず、MousePressed メソッドと MouseDragged メソッドに、以下のような絵かき処理のコードを書きました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
int mouseX, mouseY, mouseDragX, mouseDragY; BufferedImage bufImage; private void MousePressed(java.awt.event.MouseEvent evt) { mouseX = evt.getX(); mouseY = evt.getY(); } private void MouseDragged(java.awt.event.MouseEvent evt) { mouseDragX = evt.getX(); mouseDragY = evt.getY(); Graphics2D g = bufImage.createGraphics(); g.setStroke(new BasicStroke(50)); g.setColor(Color.black); g.drawLine(mouseX, mouseY, mouseDragX, mouseDragY); // bufImage を貼り付ける処理(省略) mouseX = mouseDragX; mouseY = mouseDragY; } |
マウスがプレスされた瞬間に現在座標を取得し、ドラッグのたびに直線を結び、お絵かきする処理となっています。 こ…