本人是java小白,今天在练习Swing的时候写了这样一串代码。
CardLayout cardLayout = (CardLayout)UIS.getLayout();
cardLayout.show(UIS, "change");//切换至“change”,“change”继承自JPanel,在change中会使用repaint进行转场动画播放
System.out.println("1");//输出“1”,确认程序进行情况
//睡眠500毫秒
try {
Thread.sleep(500);
} catch (InterruptedException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
cardLayout.show(UIS, "zhuye");//切换至“zhuye”“zhuye”继承自JPanel。
System.out.println("2");//输出“2”,确认程序进行情况
这一串代码理想的效果是,在我按下按钮之后,会调用一个方法,方法中便包括了如上的代码,首先切换至“change”并留有500毫秒确保转场动画播放完毕,
在500毫秒过后,切换至“zhuye”。
事与愿违,此串代码的实际情况是:按下按钮,程序输出“1”,并没有切换至“change”,并开始睡眠500毫秒,接着直接切换至“zhuye”,输出“2”。
小白思索了很久也没有找出问题的原因,希望有大佬能够帮我解解惑,谢谢。