Как отобразить изображение по нажатию кнопки с помощью LWUIT

Я пытаюсь написать приложение, используя 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 ответа

Когда вы нажимаете кнопку в первый раз, изображение добавляется в форму. При повторном нажатии это изображение уже существует в форме. Итак, это бросит "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); 
      }
});
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); 
  }

});

Если вы хотите добавить только одно изображение, вы можете использовать это:

....

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); 
      }
Другие вопросы по тегам