问题描述
packagechapter3;importjavax.swing.*;importjava.awt.*;publicclassColoredRectangle{//描述对象的实例变量privateintwidth;//矩形宽度privateintheight;//矩形高度privateintx;//矩形的x坐标privateinty;//矩形的y坐标privateJFramewindow;//显示矩形的窗口privateColorcolor;//矩形的颜色//ColoredRectangle();默认构造器publicColoredRectangle(){window=newJFrame("BoxFun");window.setSize(200,200);width=40;height=20;x=80;y=90;color=Color.BLUE;window.setVisible(true);}//paint();在窗口中显示矩形publicvoidpaint(){Graphicsg=window.getGraphics();g.setColor(color);g.fillRect(x,y,width,height);}}
以上是类ColoredRectangle的定义packagechapter3;importjava.io.*;publicclassBoxFun{//main()应用程序入口publicstaticvoidmain(String[]args)throwsIOException{ColoredRectangler1=newColoredRectangle();ColoredRectangler2=newColoredRectangle();System.out.println("Enterwhenready");System.in.read();r1.paint();r2.paint();}}
以上是实现程序,问题是如果我注释掉System.in.read()这句,后面两句paint的效果不会在窗口中显示。请教是为什么?
解决方案
解决方案二:
System.in返回的是InputStream指向命令行输入的字节流,它的read方法以字节流的方式来读取命令行的输入的数据。
解决方案三:
该回复于2011-04-18 14:42:20被版主删除
解决方案四:
引用1楼yanji2007的回复:
System.in返回的是InputStream指向命令行输入的字节流,它的read方法以字节流的方式来读取命令行的输入的数据。
这我知道,问题是如果去掉这句,就看不见后面的paint函数在窗口里画的那个矩形
解决方案五:
该回复于2010-12-20 15:29:41被版主删除
解决方案六:
我在Eclipse中没有发现你说的问题问题
解决方案七:
不知道,估计是没有刷新的原因吧,java swing不刷新有时是不会显示的
解决方案八:
学习学习!天天向上!
解决方案九:
引用3楼liuyang1204的回复:
引用1楼yanji2007的回复:System.in返回的是InputStream指向命令行输入的字节流,它的read方法以字节流的方式来读取命令行的输入的数据。这我知道,问题是如果去掉这句,就看不见后面的paint函数在窗口里画的那个矩形
我也是来学习的,呵呵!
解决方案十:
学习~