1

我正在尝试使用 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); 
        }
        });

请帮忙

4

3 回答 3

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); 
      }
});
于 2012-08-28T07:04:50.613 回答
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); 
  }

});

于 2012-08-30T16:02:56.050 回答
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); 
      }
于 2012-12-13T13:57:29.797 回答