1

ボタンをクリックすると画像が表示されるように、LWUIT を使用してアプリケーションを作成しようとしています。次のコードがあります。ただし、ボタンを 2 回クリックすると例外が発生します。例外なく画像を表示するのを手伝ってください。

        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

初めてボタンをクリックすると、フォームに画像が追加されます。2 回目にクリックすると、その画像はフォームに既に存在します。したがって、"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

画像を1つだけ追加したい場合は、これを使用できます:

....

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 に答える