高分求教一个怪异的问题
来源:互联网 发布:php artisan 命令 编辑:程序博客网 时间:2024/05/16 09:29
RectangleE类代码
- Java code
- import javax.swing.*;import java.awt.*;class RectangleE extends JFrame{ private int height=0,width=0;//declare fields; public RectangleE(){ }//constructor; public void setHeight(int h){ height=h; } public void setWidth(int w){ width=w; } public int calculateArea(){ return height*width; } @Override public void paint(Graphics g){ int s=0; for(int i=60;i<=500;i++){ g.clearRect(i-1, 50, width, height);//清除前面的矩形; //g.drawRect(i,50, width, height); s=(i-60)%6;//用此产生6种情况以改变颜色; switch (s){//选择颜色; case 0: g.setColor(Color.red); break; case 1: g.setColor(Color.BLUE); break; case 2: g.setColor(Color.PINK); break; case 3: g.setColor(Color.ORANGE); break; case 4: g.setColor(Color.GRAY); break; case 5: g.setColor(Color.MAGENTA); break; } g.fillRect(i, 50, width, height); try{ Thread.sleep(1); } catch(Exception e){ System.out.println("wenti"); }//为什么此处用wait()方法不管用? } } public void draw(){ //this.setForeground(Color.blue); this.setBackground(Color.yellow);//设置背景; this.setSize(600,500);//设置窗口大小; this.setVisible(true);//可见; this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗口,关闭程序; this.setResizable(false);//禁止改变窗口大小; repaint(); }}
执行时,矩形从左向右会有时候走三遍,有时候走两遍,很怪异啊,我明明只让它运行一遍的,各位麻烦帮忙看一下
这是为什么????
这个样子问题就解决了。
应该是JVM在加载这个RectangleE这个类的时候,自动调了一次paint(), new出来的时候又调了一次,
有时候你draw的时候在rapaint的一次。
加上static后一开就加载了他,而且指引的只有一个对象,在paint一次后就不在paint的了
以上都是我个人意见,你自己再看看。加上static是不是OK了。
我测试了是OK了
楼主把setVisible(true)移到main方法里面去就搞定了,原因暂时没想明白,不过setVisible(true)一般要放在初始化的最后为好,不然的话不知道会出现什么样的状况。
额 楼主的这个问题在楼主的第一个帖子里就看到了 么想明白
调试的过程中还有时候paint()调用了3-5遍呢 - - 十分头大
等达人解答 顺便帮顶
要不楼主试下把setVisible(true)后面的repaint()去掉,或者把setVisible(true)后面所有的语句去掉,反正我电脑上是每次都只会画一次了,楼上有3-5遍的我只能抱以诧异的目光。
恩 去掉这个少了一次 但是把setVisible(true)移到main方法里面不管用啊
调了一下,似乎setResizable(false)干了什么坏事,真相不明,注释掉这句也没事了
来源:英超直播
- 高分求教一个怪异的问题
- 高分求教一个怪异的问题
- 高分求教一个怪异的问题
- 高分求教一个怪异的问题
- 高分求教一个怪异的问题
- 高分求教一个怪异的问题
- 一个怪异的服务器问题
- 一个怪异的js问题
- WCF的一个怪异问题,高手请进
- 求教:一个数据库方面的问题
- 求教一个ASP.NET的基本问题
- 求教上传图片的一个问题
- 求教上传图片的一个问题
- 求教一个问题
- 一个win7的安装问题,怪异的问题用怪异的方法解决
- 怪异的问题
- 求教一个c++异常问题
- 求教一个生产者消费者问题
- 如何读懂一个类
- GB2312、GBK和GB18030的联系与区别
- sicily 1036
- 文本操作问题
- 交叉表实例
- 高分求教一个怪异的问题
- 高分求教一个怪异的问题
- 高分求教一个怪异的问题
- 高分求教一个怪异的问题
- 高分求教一个怪异的问题
- 高分求教一个怪异的问题
- 上机练习1(转)
- 上机练习2(转)
- JAVA性能优化