そのため、マウスをクリックしてからドラッグを停止して離すまで、Polygon を動的に描画しようとしています。この質問の目的のために、クリック、ドラッグダウン、右横、上、左横に四角形の輪郭が描かれる代わりに、これが起こります: http://imgur.com/t8ZN3Pp
助言がありますか?
ノート:
model.addPolygon() は開始点を持つ Polygon を作成し、それを「polys」という ArrayList に追加します
model.addPolygonPoint() は、「polys」に保存されているこの作成されたポリゴンにポイントを追加します
私のペイント関数はポリゴンを反復処理してペイントします
public void mousePressed(MouseEvent e) {
oldX = e.getX();
oldY = e.getY();
model.addPolygon(oldX, oldY);
}
public void mouseDragged(MouseEvent e) {
currentX = e.getX();
currentY = e.getY();
model.addPolyPoint(currentX, currentY);
repaint();
}
. . . 次にペイントコンポーネントで:
for (ListIterator<Polys> iter =
model.polys.listIterator(model.polys.size());
iter.hasPrevious();){
graphics2D.draw(iter.previous().poly);
フル ペイントコンポーネント:
public void paintComponent(Graphics g) {
super.paintComponent(g);
if (image == null) {
image = createImage(getSize().width, getSize().height);
graphics2D = (Graphics2D) image.getGraphics();
graphics2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
}
g.drawImage(image, 0, 0, null);
for (ListIterator<Polys> iter =
model.polys.listIterator(model.polys.size());
iter.hasPrevious();){
graphics2D.draw(iter.previous().poly);
}
}