请教鼠标点击事件的调用次数问题 本帖最后由 v5_6000 于 2011-03-01 21:36:46 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是这样,你可以试着在paint方法中打印一下看看它被调用了几次实际上,开始调用了两次paint,以后每点击鼠标一次因为repaint的关系又会调用paint,每次调用paint,都是增加一个新的鼠标监听者对象,因此MousePressed方法会2,3,4,5...这样随点击次数递增至于第一次为什么是两次paint,我猜初始化时一次,还可能包含一个由最小化恢复到正常状态的过程,都要paint一下,不过这个倒不是与问题相关最重要的 如何能只调用一次mousePressed()方法呢?=====不要放paint里,最好放在一次执行的环境中比如init等 问题解决,非常感谢!import java.awt.*;import java.awt.event.*;import java.applet.*;public class MouseOperationsByEvent extends Applet{ public void init() { MouseListener mdListener = new MouseAdapter(){ //处理鼠标点击事件 public void mousePressed(MouseEvent e) { System.out.println("------"); repaint(); } }; MouseMotionListener mmListener = new MouseMotionAdapter() { // 鼠标移动事件 public void mouseMoved(MouseEvent e) { System.out.println("===="); repaint(); } }; addMouseListener(mdListener); addMouseMotionListener(mmListener); } public void paint(Graphics g) { }} 请教一下“试着在paint方法中打印一下看看它被调用了几次”。鼠标是个事件监听,不是直接调用。还要在paint方法中来计数。这个事情怎么做?你说的2次是怎么来的? 调用几次就是打印一下System.out.println("xx"); jxl读取满足条件的单元格,并返回单元格的位置 acm 题求解 HashSet的排序问题 java中写一个等式方程的困惑,请老鸟解惑! 线程同步问题 为什么JAVA写的SWT程序用工具生成EXE速度 超级慢 读压缩文件时,压缩文件里有20个文件,我读的时候是根据什么顺序来读那里面的文件的? 谁有weblogic的使用手册之类的东东,中文的俺E文不好 关于java中clone()方法的问题 初学JAVA,求大神指点。谢谢! jsp页面怎么显示换行的问题? java 里的冒号是什么意思
实际上,开始调用了两次paint,以后每点击鼠标一次因为repaint的关系又会调用paint,
每次调用paint,都是增加一个新的鼠标监听者对象,因此MousePressed方法会
2,3,4,5...这样随点击次数递增至于第一次为什么是两次paint,我猜初始化时一次,还可能包含一个由最小化恢复到正常状态的过程,都要paint一下,不过这个倒不是与问题相关最重要的
=====
不要放paint里,最好放在一次执行的环境中比如init等
import java.awt.event.*;
import java.applet.*;public class MouseOperationsByEvent extends Applet
{
public void init() {
MouseListener mdListener = new MouseAdapter(){
//处理鼠标点击事件
public void mousePressed(MouseEvent e) {
System.out.println("------");
repaint();
}
};
MouseMotionListener mmListener = new MouseMotionAdapter() {
// 鼠标移动事件
public void mouseMoved(MouseEvent e) {
System.out.println("====");
repaint();
}
};
addMouseListener(mdListener);
addMouseMotionListener(mmListener);
} public void paint(Graphics g)
{
}
}
鼠标是个事件监听,不是直接调用。还要在paint方法中来计数。这个事情怎么做?你说的2次是怎么来的?
System.out.println("xx");