是否有任何理由爲什麼在LWUIT中一個Button可以擁有自己的ActionListener(通過button.addActionListener)而Command卻不行?爲什麼按鈕具有動作偵聽器並且命令不在LWUIT中?
爲特定命令設置偵聽器的唯一方法是向表單添加一個ActionListener,並檢查事件來自哪個Command的偵聽器,如下所示?
public void startApp() {
Display.init(this);
f = new Form("Mixed Record");
exit = new Command("Exit");
start = new Command("Start");
Button button = new Button("Button");
f.addCommand(exit);
f.addCommand(start);
f.addCommand(delete);
f.addComponent(button);
f.addCommandListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
if (ae.getCommand().equals(exit)) {
//Do Exit command code
} else if (ae.getCommand().equals(start)) {
//Do Start command code
}
}
});
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
//Do button code
}
});
f.show();
}
我明白了。它現在是有道理的..(而不是隻是討厭)。謝謝你的詳細回覆! – 2012-07-26 05:56:11
Command是一個動作監聽器(你可以將它的子類化並在其actionPerformed方法中編寫代碼,因此向動作監聽器添加一個動作監聽器似乎是一種有點混淆的間接方式,這就是爲什麼我們沒有這樣做(原始合着者的LWUIT) – 2012-07-29 08:25:38