Java me LWUIT 1.4:为什么不是';使用Display.callSerialy()时是否设置了时间线动画?

Java me LWUIT 1.4:为什么不是';使用Display.callSerialy()时是否设置了时间线动画?,java-me,lwuit,lwuit-resource-editor,Java Me,Lwuit,Lwuit Resource Editor,我想显示一个包含图像的标签,该标签中的图像是一个时间线: 事实上,我是从网络上得到这张图片的:它是一张动画gif,所以当我把它添加到资源编辑器中时,它会自动转换成时间线。然后我将标签添加到我的表单中: public class Login extends Ecran implements ActionListener { ... public Login(SmartPhoneBanking c, Form prevForm) { ... patientez = new Label(

我想显示一个包含图像的
标签
,该标签中的图像是一个
时间线

事实上,我是从网络上得到这张图片的:它是一张动画gif,所以当我把它添加到资源编辑器中时,它会自动转换成
时间线
。然后我将
标签添加到我的
表单中

public class Login extends Ecran implements ActionListener {
...
public Login(SmartPhoneBanking c, Form prevForm) {
   ...
   patientez = new Label((MenuPrincipalForm.r).getImage("roller_fond_blanc")); // r is the LWUIT Resources , you can see the roller_fond_blanc Timeline in the attached image
   patientez.setAlignment(Label.CENTER);
   ...
   cPatienter.addComponent(patientez);
   ...
   }
   ...
   public void actionPerformed(ActionEvent evt) 
   {
        ...
        if (evt.getSource() == validerBtn)
        {
            getTitleComponent().setVisible(false);
            cntnr.removeComponent(cBtn);
            cntnr.removeComponent(libAndFieldContainer);
            removeCommand(listeMenu);
            cntnr.addComponent(cPatienter); // showing the "Please wait" labels and the Timeline
            repaint();
            Display.getInstance().callSerially(new Runnable()
                                               {
                                                   public void run() {
                                                       download();
                                                   }
                                                });
        }
}
我包括了
repaint()
方法,因为如果没有它,“请稍候”标签就不会显示


那么为什么时间线没有动画化呢?

我和你做了同样的过程。但是我使用资源编辑器将图像直接包含在
表单中
,它可以正常工作

试着这样做

下载LWUIT的最新版本。(1.5) 将图像创建为
时间线

在资源编辑器的GUI Builder选项卡中,将图像放入
表单中

我执行了与您相同的过程。但是我使用资源编辑器将图像直接包含在
表单中
,它可以正常工作

试着这样做

下载LWUIT的最新版本。(1.5) 将图像创建为
时间线

在资源编辑器的GUI Builder选项卡中,将图像以
形式放置

我将
callSerially
替换为
invokeAndBlock
,时间线将设置动画。

我将
callSerially
替换为
invokeAndBlock
并将时间线设置动画。

您需要阅读有关EDT的内容。当您在连续调用中执行操作时,您正在阻止LWUIT用于绘制和处理事件的事件调度线程,这对于小事情来说是一件好事,因为LWUIT没有竞争条件


但是,如果您执行任何冗长的过程,那么这种阻塞将是一个问题。Invoke and block与串行调用完全相反,它以“安全的方式”阻塞EDT,并在可能很长的单独线程上执行操作。对于下载(长io)invokeAndBlock或实际上只是跨越一个单独的线程是正确的做法。LWit4IO可以无缝地为您做到这一点

您需要阅读有关EDT的内容。当您在连续调用中执行操作时,您正在阻止LWUIT用于绘制和处理事件的事件调度线程,这对于小事情来说是一件好事,因为LWUIT没有竞争条件


但是,如果您执行任何冗长的过程,那么这种阻塞将是一个问题。Invoke and block与串行调用完全相反,它以“安全的方式”阻塞EDT,并在可能很长的单独线程上执行操作。对于下载(长io)invokeAndBlock或实际上只是跨越一个单独的线程是正确的做法。LWit4IO可以无缝地为您做到这一点

在将图像直接包含在表单中后,是否可以粘贴生成的代码?我认为您没有使用最新的资源编辑器…查看LWUIT博客。在将图像直接包含在表单中后,是否可以粘贴生成的代码?我认为您没有使用最新的资源编辑器…查看LWUIT博客。