我有以下代码,除了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 :(得分:5)
while循环在指定条件为true
时循环。您已将lo
初始化为0,该值不等于256,因此永远不会输入循环体。
因为你在循环中增加lo
,或许你的意思相反:
while(!lo.equals(256)){
Java中的!
运算符否定了布尔条件,因此它显示为:“当lo 等于256”时。
答案 1 :(得分:1)
这是因为虽然总是以truth
语句开头而不是false
,而lo.equals("256")
正在给false
,因为lo = 0
和零从不等于256。
如果你想开始循环,你必须否定这样的条件:
while(!lo.equals("256")
//then start the loop