0
所以现在我有一个程序在我点击鼠标时绘制一个圆圈,当我点击鼠标时绘制一个方形图案,当我点击它时清除屏幕。拖动以绘制更多形状
•我想要做的是能够拖动并让鼠标在拖动时留下一些数字。我怎么做?这是我的程序。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;`
public class SimpleStamper extends JPanel implements MouseListener {
public static void main(String[] args) {
JFrame window = new JFrame("Simple Stamper");
SimpleStamper content = new SimpleStamper();
window.setContentPane(content);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setLocation(120,70);
window.setSize(400,300);
window.setVisible(true);
}
// ------------------------------------------------------------------
public SimpleStamper() {
setBackground(Color.BLACK);
addMouseListener(this);
}
public void mousePressed(MouseEvent evt) {
if (evt.isShiftDown()) {
repaint();
return;
}
int x = evt.getX();
int y = evt.getY();
Graphics g = getGraphics();
if (evt.isMetaDown()) {
g.setColor(Color.RED);
g.fillOval(x - 30, y - 30, 60, 60);
g.setColor(Color.RED);
g.drawOval(x - 30, y - 30, 60, 60);
}
else {
g.setColor(Color.PINK);
g.fillRect(x - 15, y - 15, 30, 30);
g.setColor(Color.PINK);
g.drawRect(x - 15, y - 15, 30, 30);
}
g.dispose();
}
public void mouseEntered(MouseEvent evt) { }
public void mouseExited(MouseEvent evt) { }
public void mouseClicked(MouseEvent evt) { }
public void mouseReleased(MouseEvent evt) { }
}
为什么你的鼠标处理程序中有绘画代码?绘画应该只在paint()方法中完成。点击时,保存位置,然后在paint()中的该位置绘制形状。 – 2015-03-03 08:28:54
@Baelynn我已经添加了一个完整的重新实现。 – laune 2015-03-03 09:41:48