所以我正在制作一个应用程序,我想跟踪添加到屏幕上的形状。到目前为止,我有以下代码,但添加一个圆时不能移动/更改。理想情况下,我想要按住shift键点击它来移动/突出显示它。Java图形 - 保持跟踪形状
我也想知道我怎样才能让它可以从一个圆圈拖到另一个圆圈。我不知道我是否在这里使用了错误的工具来完成这项工作,但是我会感激任何帮助。
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class MappingApp extends JFrame implements MouseListener {
private int x=50; // leftmost pixel in circle has this x-coordinate
private int y=50; // topmost pixel in circle has this y-coordinate
public MappingApp() {
setSize(800,800);
setLocation(100,100);
addMouseListener(this);
setVisible(true);
}
// paint is called automatically when program begins, when window is
// refreshed and when repaint() is invoked
public void paint(Graphics g) {
g.setColor(Color.yellow);
g.fillOval(x,y,100,100);
}
// The next 4 methods must be defined, but you won't use them.
public void mouseReleased(MouseEvent e) { }
public void mouseEntered(MouseEvent e) { }
public void mouseExited(MouseEvent e) { }
public void mousePressed(MouseEvent e) { }
public void mouseClicked(MouseEvent e) {
x = e.getX(); // x-coordinate of the mouse click
y = e.getY(); // y-coordinate of the mouse click
repaint(); //calls paint()
}
public static void main(String argv[]) {
DrawCircle c = new DrawCircle();
}
}
graphics.draw(ellipse);给我一个错误... – Tim
图形是伪的。我指的是你使用的任何图形对象。您使用'g'作为参考的例子。尝试使用g.draw() – Nikki
+1来绘制Shapes。但是,Graphics类不知道如何绘制形状。你需要使用'Graphics2D'类。你也应该使用'fill()'方法。 draw()方法只是绘制Shape的轮廓。有关更多信息,请参见[使用形状](http://tips4java.wordpress.com/2013/05/13/playing-with-shapes/)。 – camickr