看下代码,具体方法已经被我省略了 当我用鼠标在面板上画直线 的时候,鼠标肯定会移动的,虽然最终直线是画成功了,但有些不对 通过System.out.println()打印结果来看 mousePressed,mouseReleased事件都执行了,唯独鼠标拖拽事件mouseDragged没有执行,请求帮助 public class PainterPanel extends JPanel implements MouseInputListener{ int shape = -1; // 图案类型 Point point[] = new Point[2]; // 记录鼠标拖动的起始点和终点 Image imgP = null; Label bar = null; int angle = 0; //角度 private List list = new ArrayList();//集合 int width=0; int height=0; // boolean flag = true; public Label getBar() { return bar; } public void setBar(Label bar) { this.bar = bar; } public PainterPanel(Image img) { // super();
} // 重写绘制图像方法 public void paintComponent(Graphics g) { // System.out.println("paintComponent");
} public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mouseClicked(MouseEvent e) { } public void mousePressed(MouseEvent e) // 鼠标按下时事件 { System.out.println("mousePressed"); point[0] = new Point(e.getX(), e.getY()); // 设置起始点位置 String desc = "現在位置:x=" + e.getX() + " y=" + e.getY();
} public void mouseDragged(MouseEvent e) { // 移動過程中事件
鼠标移动用 mouseMoved(MouseEvent e)
当我用鼠标在面板上画直线 的时候,鼠标肯定会移动的,虽然最终直线是画成功了,但有些不对
通过System.out.println()打印结果来看
mousePressed,mouseReleased事件都执行了,唯独鼠标拖拽事件mouseDragged没有执行,请求帮助
public class PainterPanel extends JPanel implements MouseInputListener{
int shape = -1; // 图案类型
Point point[] = new Point[2]; // 记录鼠标拖动的起始点和终点
Image imgP = null;
Label bar = null;
int angle = 0; //角度
private List list = new ArrayList();//集合
int width=0;
int height=0;
// boolean flag = true;
public Label getBar() {
return bar;
}
public void setBar(Label bar) {
this.bar = bar;
}
public PainterPanel(Image img) {
// super();
} // 重写绘制图像方法
public void paintComponent(Graphics g) {
// System.out.println("paintComponent");
} public void mouseEntered(MouseEvent e) {
} public void mouseExited(MouseEvent e) {
} public void mouseClicked(MouseEvent e) {
} public void mousePressed(MouseEvent e) // 鼠标按下时事件
{
System.out.println("mousePressed");
point[0] = new Point(e.getX(), e.getY()); // 设置起始点位置
String desc = "現在位置:x=" + e.getX() + " y=" + e.getY();
} public void mouseDragged(MouseEvent e) { // 移動過程中事件
System.out.println("mouseDragged");
point[1] = new Point(e.getX(), e.getY()); // 设置终点位置
repaint(); // 重绘屏幕
} public void mouseReleased(MouseEvent e)// 鼠标释放事件
{
System.out.println("mouseReleased");
point[1] = new Point(e.getX(), e.getY()); // 设置终点位置
repaint(); // 重绘屏幕
} public void paint(Graphics g) {
super.paint(g);
//System.out.println("paint");
} public void drawShape(int shape) {
}
public void mouseMoved(MouseEvent e) {
// TODO Auto-generated method stub
}
}
addMouseMotionListener(this);