我正在尝试使用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);
}
});
请帮助
答案 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);
}