应该是有个active什么的事件,你在事件栏中找找看.

解决方案 »

  1.   

    不知道你是不是不小心覆盖了里面的什么方法·······
    不过如果实在找不到的话,你可以试试看在
    windowListener里面,加多一个监听器
    就是
    windowDeiconified(WindowEvent e)
    这个事件里面你让他
    repaint()
    应该就可以了
      

  2.   

    我还是直说了吧
    我是用 Form 做了一个扫雷 原来想用 PictureBox 做雷区的
    但是太占系统资源了,速度很慢  于是想到了用 Paint 方法画
    这样就和系统的比较接近了
    但是却碰到了这个问题,
    如果用楼上的 activate 事件执行 Repaint 方法 要重画 m*n 次(雷区宽度和高度)
    这样速度又慢了
    还有楼上说的 windowDeiconified 方法是awt包里的,和 VJ++ 的垃圾 Form 类没关系啊
    谁还有其它的办法???
      

  3.   

    应该有
    我是说这样做会影响程序反应速度
    能不能覆盖原来的 Paint 方法????
    让它自动重画
      

  4.   

    覆盖paint的话只能指定要画什么
    而不能指定什么时候让这个form重画
    或者如果代码不太长的话让大家看看?
      

  5.   

    太长了
    java文件都 20多K 了
      

  6.   

    ··········
    20多K
    吓死了
    呵呵那还是看看你的说法吧,你说
    如果用楼上的 activate 事件执行 Repaint 方法 要重画 m*n 次(雷区宽度和高度)
    这样速度又慢了
    这里为什么执行repaint方法很费资源吗?不也就是相当于调用了一次
    paint吗?你在paint里面是用两个for循环来划出所有的雷区的吧?
      

  7.   

    我没有用protected void onPaint( PaintEvent e )
    而是在其中添加了一个 Panel p;
    Graphics g=p.createGraphics();
    因为程序中很多地方都要用 g.drawImage 方法画图
    所以没法用onPaint方法(它是可以重画的)
    有没有办法解决这个问题
    多谢大家的帮忙
      

  8.   

    不太懂MS的东西
    我没有见过onPaint这个方法·····帮你up一下好了
      

  9.   

    不会吧?
    Form里的onPaint和Applet里的Paint方法是一样的
      

  10.   

    试试写一个 在关闭该窗口前不 重画的方法:    public void waitUntilClose( )
        {
            setVisible(false);
            setModal(true);
            setVisible(true);
        }
      

  11.   

    我知道啊
    但是JBuilder 确实太慢了
    而且我已经写的差不多了
    总要不它写完吧?
      

  12.   

    我已将源程序上传到如下地址:
    http://ns1.jilinfarm.com/member/big/扫雷.rar
    谁能帮我搞定???