0

我有以下代码,除了循环之外,一切似乎都在工作while,这里是代码:

JLabel img = new JLabel(loadingScreens.getImageIcon(0));
    loadingFrame.setUndecorated(true);
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    double width = screenSize.getWidth();
    double height = screenSize.getHeight();
    int wid = (int) width;
    int hgt = (int) height;
    wid = wid/2;
    hgt = hgt/2;
    wid -=350;
    hgt -=350;
    loadingFrame.setLocation(wid, hgt);

    loadingFrame.setSize(700, 700);
    loadingFrame.setBackground(new Color(0,0,0,0));
    loadingFrame.add(img);
    loadingFrame.setIconImage(loadingScreens.getImage(0));
    loadingFrame.setVisible(true);
    System.out.println("Done 1");
    try{
    Thread.sleep(500);
    System.out.println("Done 2");
    }catch(Exception e){
        System.out.println("exception caught");
    }

    Integer lo = 0;
    System.out.println("Done 3");
    while(lo.equals(256)){

        System.out.println("Started 4");

        loadingFrame.setBackground(new Color(lo, lo, lo, lo));

        loadingFrame.repaint();
        try{
            Thread.sleep(10);
        }catch(Exception e2){

        }
        lo++;
    }

loadingFrame作为一个基本的JFrame。

任何帮助都是有用的

4

2 回答 2

5

while 循环在指定条件为 时循环true。您已初始化lo为 0,不等于 256,因此永远不会进入循环体。

lo因为你在循环中递增,也许你的意思是相反的:

while(!lo.equals(256)){

Java 中的!运算符否定布尔条件,因此它显示为:“虽然 lo等于 256”。

于 2013-06-18T18:40:20.050 回答
1

这是因为 while 总是以truth语句而不是 a开头,false而你lo.equals("256")给出的是false因为 lo = 0 和 0 永远不会等于 256。
如果你想开始循环,你必须否定这样的条件:

while(!lo.equals("256") 
//then start the loop
于 2013-06-18T18:42:06.253 回答