下載一個黑莓Eclipse插件,然后新建一個工程,之后新建一個類
import net.rim.device.api.ui.Field;
import net.rim.device.api.ui.FieldChangeListener;
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.component.ButtonField;
import net.rim.device.api.ui.component.Dialog;
import net.rim.device.api.ui.container.HorizontalFieldManager;



public class BBUIApp extends UiApplication
{
public BBUIApp()

{
HorizontalFieldManager top1 = new HorizontalFieldManager();
ButtonField mySubmitButton = new ButtonField("Connect");
ButtonField mySubmitButton1 = new ButtonField("close");

FieldChangeListener listenerSubmit = new FieldChangeListener()
{

public void fieldChanged(Field field, int context)
{
Dialog.alert("ok");
}
};
mySubmitButton.setChangeListener(listenerSubmit);
top1.add(mySubmitButton);
top1.add(mySubmitButton1);
final MyPopup popUp = new MyPopup(top1);

this.pushScreen(popUp);
}

public static void main(String[] args)
{
BBUIApp bbh = new BBUIApp(); // 創建應用程序
bbh.enterEventDispatcher(); // 進入事件分發循環
}


}

這是一個黑莓CLDC基礎應用類,需要繼承自UIApplication,還要有main方法,因為黑莓運行CLDC時候會自動調用該方法。構造函數里面丟了兩個按鈕,添加了一個事件監聽并添加了一個PopupScreen的子類,就是彈出菜單的Screen,實現如下:
import net.rim.device.api.system.KeyListener;
import net.rim.device.api.ui.Keypad;
import net.rim.device.api.ui.Manager;
import net.rim.device.api.ui.MenuItem;
import net.rim.device.api.ui.component.Menu;
import net.rim.device.api.ui.container.PopupScreen;
import net.rim.device.api.ui.container.VerticalFieldManager;

class MyPopup extends PopupScreen
{

MyPopup(Manager manager)
{
super(manager, DEFAULT_MENU | DEFAULT_CLOSE);//設置整個Style,顯示出默認的Menu
}

public void makeMenu(Menu menu, int instance)
{

if (instance == Menu.INSTANCE_DEFAULT)
{
menu.add(_myItem);
}

if (instance == Menu.INSTANCE_CONTEXT)
{//接收context Menu信息
menu.add(_myContextItem);
}
super.makeMenu(menu, instance);
}

protected MenuItem _myItem = new MenuItem("My Item", 100, 10)
{

public void run()
{ // do something here } };
}
};

protected MenuItem _myContextItem = new MenuItem("My Context Item", 100, 10)
{

public void run()
{ // do something here } };
}
};

protected boolean keyChar(char c, int status, int time)
{

if(c==Keypad.KEY_ESCAPE)
{
close();
}
return super.keyChar(c, status, time);
}
}

makeMenu繼承自父類,重新寫了實現,INSTANCE_DEFAULT是默認菜單,也就是黑莓手機上面的菜單鍵,INSTANCE_CONTEXT是上下文菜單,也就是按了中間圓球彈出來的菜單。如果運行這個示例,按菜單鍵則彈出來的是帶有My Item選項的菜單,如果按了圓球,則會現出來一個對話框顯示ok,點過確定后又會彈出來一個帶有My Context Item選項的菜單。需要注意的是,不管這個Manager下面有哪些控件,只要傳給了PopupScreen,那么在任何控件上面按圓球都會彈出My Context Item這個菜單。
最后要注意,在項目屬性配置中,需要設置為CLDC Application
---------------------------------------------------------
專注移動開發
Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian
posted on 2009-12-13 12:18
TiGERTiAN 閱讀(1250)
評論(0) 編輯 收藏 所屬分類:
J2ME 、
BlackBerry