我用了个Frame里面有一个面板   面板大小3200*2400画了一个地图   并且又画了一个人物   
人物是动态的   是一张张JPG用线程拼成的   
然后我想鼠标在窗体最上面的时候地图上移   可是我怎么也想不明白
我就用了个setBounds(Px, Py, 3200, 2400);这个方法
地图是移动了   但人物飞快的换图片了
难道setBounds还会自动调用面板里面的paintComponent方法?   我人物是在这个方法里面画的
如果真的是这样有什么方法解决    
望大家踊跃发言   互相交流   共同提高

解决方案 »

  1.   

    我用键盘事件控制也不行   我只让地图坐标加了   然后setBounds但是我人物还是飞快的换图片
      

  2.   

    int Mx=0;
    int My=0;//移到的位置
    LTZ ltz=new LTZ();
    Thread t;
    int Px=-1500;//面板的坐标
    int Py=-500;
    class MoveKey extends KeyAdapter{
    public void keyPressed(KeyEvent e) {
    if(e.getKeyCode()==e.VK_W){
    if (Py == 0) {
    Py = 0;;
    mp.setBounds(new Rectangle(Px, Py, 3200, 2400));
    } else {
    Py += 2;
    mp.setBounds(new Rectangle(Px, Py, 3200, 2400)); }
    }
    }

    }mp是那个面板  面板上画了个图片
    public void paintComponent(Graphics g) {
    super.paintComponents(g);
    g.drawImage(imageDitu[0],0,0,null );
    setBounds(Px, Py, 3200, 2400);
    ltz.draw(g); }然后就是个进程180毫秒刷新一下  
      

  3.   

    没怎么太研究过,你可以试试获得路径的方法,好像是getGraphicspath()应该是swt中java 2d 的方法