我将组件滑动组件与其他组件淡入淡出动画组合在一起。但是组件在淡入之前会出现一秒钟。这里的表单是分层布局。由于还有其他组件彼此重叠。一切正常但我申请淡入的问题也有同样的问题。我附上了下面的GIF图片。
beforeSplash(表格f):
f.setLayout(new LayeredLayout());
Container bottomContainer = new Container(new BoxLayout(BoxLayout.X_AXIS));
f.add(FlowLayout.encloseBottom(bottomContainer));
Container appleContainer = new Container(new FlowLayout(Component.CENTER, Component.BOTTOM));
appleLabel = new Label(apple);
appleLabel.setVisible(false);
appleContainer.add(appleLabel);
bottleLabel = new Label(bottle);
bottomContainer.add(appleContainer);
bottomContainer.add(bottleLabel);
bottleLabel.setVisible(false);
postSplash(表格f):
bottleLabel.setVisible(true);
arrangeForSlide(bottleLabel);
bottleLabel.getParent().animateLayoutAndWait(2000);
appleLabel.setVisible(false);
appleLabel.setVisible(true);
appleLabel.getParent().animateLayoutFadeAndWait(2500, 0);
f.revalidate();
幻灯片动画:
private void arrangeForSlide(Label c) {
c.setX(-c.getWidth());
}
更新
bottleLabel.setVisible(true);
arrangeForSlide(bottleLabel);
bottleLabel.getParent().animateLayoutAndWait(2000);
new Thread() {
public void run() {
Display.getInstance().callSerially(new Runnable() {
public void run() {
appleContainer.setVisible(true);
appleContainer.animateLayoutFadeAndWait(2000, 0);
}
});
}
}.start();
现在我需要在上面的applecontainer动画完成之后添加其他组件动画等等。例如:
questionBg.setVisible(true);
questionBg.getParent().animateLayoutFadeAndWait(3000, 20);
更新2:
我只添加了一个组件appleLabel并应用了淡入淡出效果,结果是一样的。所以可能不是EDT问题。我也在准系统模板中尝试过它。
Container appleContainer = new Container(new FlowLayout(Component.CENTER, Component.BOTTOM));
appleLabel = new Label(apple);
appleContainer.add(appleLabel);
appleLabel.setVisible(false);
f.add(appleContainer);
f.show();
appleLabel.setVisible(true);
appleLabel.getParent().animateLayoutFadeAndWait(5000, 0);
它没有用,所以我尝试了callSerially,但它同样也提出了问题
Display.getInstance().callSerially(new Runnable() {
@Override
public void run() {
appleLabel.setVisible(true);
appleLabel.getParent().animateLayoutFadeAndWait(5000, 0);
}
答案 0 :(得分:0)
尝试将appleContainer
设置为可见false,看看是否有帮助。