如何使用LWUIT点击按钮显示图像

时间:2012-08-28 06:50:53

标签: mobile java-me lwuit lwuit-form lwuit-button

我正在尝试使用LWUIT编写应用程序,我希望在单击按钮时显示图像。 我有以下代码。但如果单击按钮两次,我会收到异常。 请帮我显示图片,不得有任何例外。

        final Form f = new Form("Static TAF");

        Button TrackMe = new Button("TrackMe");

        Image TrackMeicon = null;
        TrackMeicon = Image.createImage("/hello/follow.jpeg");
        final Label TrackMeLabel = new Label(TrackMeicon);    

        TrackMe.addActionListener(new ActionListener()
        {

        public void actionPerformed(ActionEvent ae) 
        {
                 System.out.println("Removing the previous Images");
                 f.addComponent(TrackMeLabel); 
        }
        });

请帮助

3 个答案:

答案 0 :(得分:1)

第一次单击该按钮时,图像将添加到表单中。当您第二次单击时,该图像已存在于表单中。因此,它将抛出"Component already exists"异常。

你的动作听众应该是

TrackMe.addActionListener(new ActionListener(){
      public void actionPerformed(ActionEvent ae) {
              System.out.println("Removing the previous Images");
              f.removeComponent(TrackMeLabel); 
              f.addComponent(TrackMeLabel); 
      }
});

答案 1 :(得分:0)

TrackMe.addActionListener(new ActionListener(){
  public void actionPerformed(ActionEvent ae) {
          System.out.println("Removing the previous Images");
          final Label TrackMeLabel = new Label(TrackMeicon); 
          f.removeAll();
          f.addComponent(TrackMeLabel); 
  }

});

答案 2 :(得分:0)

如果您只想添加一张图片,可以使用:

...

TrackMe.addActionListener(new ActionListener(){
  public void actionPerformed(ActionEvent ae) {
          if(!f.containes(TrackMeLabel))
             f.addComponent(TrackMeLabel); 
  }

如果你想要一些图像,你需要这样的东西:

...

 TrackMe.addActionListener(new ActionListener(){
      public void actionPerformed(ActionEvent ae) {
               Image TrackMeicon = null;
               TrackMeicon = Image.createImage("/hello/follow.jpeg");
               Label TrackMeLabel = new Label(TrackMeicon);   
               f.addComponent(TrackMeLabel); 
      }