だから私は次のコードを持っています:
import java.awt.*;
public class Triangle extends Point {
protected int size;
private int p1x, p2x, p3x, p1y, p2y, p3y;
//Create a new triangle
public Triangle()
{
super();
size = 100;
yPos = 100;
}
public void reSize(int newSize) {
size = size + newSize;
}
//Draw the triangle with current specifications on screen.
public void display(Graphics g) {
p1x = (size / 3);
p2x = (size / 2);
p3x = ((2 * size) / 3);
p1y = ((2 * size) / 3);
p2y = (size / 3);
p3y = ((2 * size) / 3);
int[] xPoints = { p1x, p2x, p3x };
int[] yPoints = { p1y, p2y, p3y };
int npoints = 3;
g.fillPolygon(xPoints, yPoints, npoints);
}
}
そして、次のコードを使用して三角形を拡大/縮小します。
if (e.getSource() == makeBigger) {
aShape.reSize(20);
}
else if (e.getSource() == makeSmaller) {
aShape.reSize(-20);
}
問題は、次のコードを使用してドラッグする機能も必要なことです。
this.addMouseListener(new MouseAdapter() {
public void mouseReleased(MouseEvent me) {
shapeColor = Color.black;
repaint();
}
public void mouseDragged(MouseEvent me) {
shapeColor = Color.lightGray;
aShape.moveXY(me.getX(), me.getY());
repaint();
}
});
this.addMouseMotionListener(new MouseAdapter() {
public void mouseReleased(MouseEvent me) {
shapeColor = Color.black;
repaint();
}
public void mouseDragged(MouseEvent me) {
shapeColor = Color.lightGray;
aShape.moveXY(me.getX(), me.getY());
repaint();
}
});
そして、私がそれを見ることができる唯一の方法は、私がどちらか一方を持つことができるということです。両方の機能を使用できるように組み合わせるにはどうすればよいですか?現時点では完全にサイズ変更されていますが、x/y座標の可変サイズをyPos/xPosに変更すると、三角形をドラッグすることはできますが、形状を変更することはできません。
ありがとう!