import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;import javax.swing.*;
public class StartPage extends JWindow{
Image image;
int width = Toolkit.getDefaultToolkit().getScreenSize().width;
int height = Toolkit.getDefaultToolkit().getScreenSize().height;
public StartPage(){
setBounds(width/2-200, height/2-200, 398, 250);
// this.setSize(400,300);
this.setVisible(true);

}
public static void main(String[] args) {

     new StartPage();
}
public void paint(Graphics g) {

    super.paint(g);
image=Toolkit.getDefaultToolkit().getImage("images\\start.jpg");
g.drawImage(image, 0, 0, this);
g.setColor(new Color(10,100,20));
g.drawRect(10, 210, 370, 30);
for(int i=0;i<=37;i++){
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
g.fillRect(10, 212, i*10, 27);
} }
}
刚开始为什么不显示图片,我刚学的java不太懂,求各位高手帮我看看,帮忙解决解决

解决方案 »

  1.   


    this.setVisible(true);使窗体可见,一般不放在构造方法里的,移到main方法中
      

  2.   

    楼主  代码 本人 测试过了   基本上思路没什么问题   但是  楼主   注意了   问题 在  Thread.sleep(1000);每次 执行是   让出线程   则  刚才显示的内容就消失了 在此  得到线程时候   画的又是另一幅图了    楼主 的图片不是没有显示    而是  在瞬间 又 被   下一幅图 覆盖了 
    public void paint(Graphics g) {super.paint(g);
    image=Toolkit.getDefaultToolkit().getImage("images\\start.jpg");
    for(int i=0;i<=37;i++){
    try {
    Thread.sleep(1000);
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    g.drawImage(image, 0, 0, this);
    g.setColor(new Color(10,100,20));
    g.drawRect(10, 210, 370, 30);g.fillRect(10, 212, i*10, 27);
    }}
    这样就好了   
      

  3.   

    按五楼的方法改了,但新的问题又出来。。长方形的填充条别填充了两次,这是为什么,是不是我不该用Thread。sleep();方法