update()方法。
具体不知道

解决方案 »

  1.   

    public void mousePressed(MouseEvent e) {
            getGraphics().drawImage(mainIco,40,40,null);
          }
    null改成this。分多花不了啊,发了两个这样的帖。
      

  2.   

    的确是需要点击两次
    我改了一下你的程序,
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class Test extends JFrame
    {
      Toolkit kit = Toolkit.getDefaultToolkit();
      Image mainIco = kit.getImage(".\\image\\main.jpg");
      public static void main(String[] args) {
        JFrame test = new Test();
        test.setVisible(true);
      }
      public Test()
      {
        JPanel tp = new JPanel();
        JLabel jl = new JLabel("test");
        tp.add(jl);
        
        
        addMouseListener(new MouseAdapter() {      public void mousePressed(MouseEvent e) {
      repaint();
          }      public void mouseReleased(MouseEvent e) {
            
          }    });
        setSize(200,200);
        setLocation(100,100);
        
        getContentPane().add(tp);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      }
      public void paint(Graphics g)

      g.drawImage(mainIco,40,40,null);setTitle("test");
    }
    }
    这样只要点一次就可以了,原因可能时,第一点鼠标调用的是默认的paint方法,第二次才是调用你的方法,瞎猜,不过画图最好重写paint方法