2013-06-18 4 views
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.

Любая помощь полезна

+0

Что такое 'lo.equals (256)'? '0.equals (256)'? – NINCOMPOOP

+2

Ну, это довольно очевидно. Ваше 'lo' содержит значение' 0', и оно не равно '256'. –

+0

но добавьте конец У меня есть lo ++, который должен добавить один – APerson

ответ

5

Некоторое время цикла петли, пока заданное условие true. Вы инициализировали lo на 0, что не равно 256, поэтому тело цикла никогда не вводится.

Потому что приращение lo в цикле, возможно, вы имели в виду обратное:

while(!lo.equals(256)){ 

! оператор в Java инвертирует логическое состояние, так что она гласит: «в то время как вот это не равна 256 ».

+0

Спасибо, что сработало для меня – APerson

1

Это потому, что в то время как всегда начинается с truth заявления не false и ваш lo.equals("256"), дают false потому lo = 0 и ноль никогда не равен 256.
Если вы хотите, чтобы запустить цикл у вас есть отрицанию состояния, как это:

while(!lo.equals("256") 
//then start the loop 
Смежные вопросы