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