選單Menu和選單項MenuItem

2021-08-19 10:49:19 字數 3132 閱讀 8520

檔案子選單下面有新建,開啟和退出子選項。檢視下面有普通子選項。

(1)在shell視窗中新增選單條(主選單)——menu_bar;

型別是選單(menu)樣式是選單條(swt.bar)。

(2)然後在主選單中新增兩個子選單——檔案子選單fileitem和檢視子選單viewitem;

型別是選單選項(menuitem)樣式是可以有子選單(swt.cascade)。

(3)在shell視窗中新增兩個下拉條選單——對應檔案子選單的下拉條file_down和對應檢視子選單的下拉條view_down;

型別是選單(menu)樣式是可以下拉條(swt.drop_down)。

(4)分別在兩個下拉條下新增三個檔案選單選項和乙個檢視選單選項。

型別是選單選項(menuitem)樣式是可以按鈕(swt.push)。

(5)然後將檔案子選單與檔案下拉條相關聯,檢視子選單與檢視下拉條相關聯。即將下拉式選單繫結到選單項的下面。

(6)在shell中顯示選單條(主選單)。shell.setmenubar(menu_bar)。

選單選項只有在選單下新增。即menuitem   menuitem=new  menuitem(menu,swt.cascade);  

乙個選單可以包含多個選單項。

將選單繫結到控制項上。對於所有控制項(control)都可以使用setmenu(menu,menu)方法將乙個選單繫結到乙個控制項,這樣繫結的選單為右鍵彈出式選單。

對於shell視窗控制項,除了可以使用setmenu(menu menu)方法設定彈出式選單外,還可以使用setmenubar(menu menu)設定顯示在視窗上方的選單。

(1)swt.bar:shell選單欄中的選單

menu menu_bar=new menu(shell,swt.bar);
shell.setmenubar(menu_bar);若將建立選單的樣式改為其他的,而不是swt.bar的話,執行時會丟擲「menu is not a bar」。

(2)swt.drop_down:從選單欄或者選單項中彈出的選單。

本程式中使用的檔案選單就是乙個下拉式選單。建立下拉式選單時,所放置這個下拉式選單的選單樣式必須是swt.cascade,否則會丟擲「menu item is not 啊cascade」。

方法一

menuitem fileitem=new menuitem(menu_bar,swt.cascade);//彈出選單的選單項

menu file_down=new menu(shell,swt.drop_down);//彈出的選單

fileitem.setmenu(file_down);//將選單附加到選單項上

方法二

menuitem fileitem=new menuitem(menu_bar,swt.cascade);//彈出選單的選單項

//如果將附加的選單項作為構造方法,預設為下拉式選單

menu file_down=new menu(fileitem);

fileitem.setmenu(file_down);//將選單附加到選單項上

(3)swt.pop_up:單擊滑鼠右鍵彈出的選單。

這種彈出式選單適用於作為上下文選單。

menuitem fileitem=new menuitem(menu_bar,swt.cascade);//彈出選單的選單項

//如果將附加的選單項作為構造方法,預設為下拉式選單

menu file_down=new menu(shell,pop_up);

shell.setmenu(file_down);//將選單附加到選單項上

效果:在視窗的任意位置單擊滑鼠右鍵,將彈出右鍵選單。

swt.push:普通的選單項,單擊類似於按鈕的操作。

swt.radio:可以在幾個選項之間選中乙個,並且選中的選項以黑圓點表示。

swt.check:類似於多選框,可以同時選中多個選項,並且選中的選項以對勾符號表示。

swt.cascade:可以包含乙個下拉列表的選單項。

swt.separator:充當分隔條的選單項,通常沒有其他意義。

menuitem createitem=new menuitem(file_down,swt.push);

createitem.settext("新建(&n) alt+shift+n");

createitem.setaccelerator(swt.alt+swt.shift+'n');//設定快捷鍵

import org.eclipse.swt.swt;

import org.eclipse.swt.widgets.*;

public class e

});//將檔案的下拉條與檔案的選單項進行關聯

fileitem.setmenu(file_down);

//建立乙個檢視選單選項,下面具有子選單

menuitem viewitem=new menuitem(menu_bar,swt.cascade);

viewitem.settext("檢視");

//建立乙個檢視選單選項對應的檢視下拉條

menu view_down=new menu(shell,swt.drop_down);

//在檢視下拉條下建立乙個普通檢視選項

menuitem normalitem=new menuitem(view_down,swt.push);

normalitem.settext("普通(&n)");

//將檢視的選單選項與檢視的下拉條相關聯

viewitem.setmenu(view_down);

//顯示選單條

shell.setmenubar(menu_bar);

//開啟視窗,進行視窗的顯示

shell.pack();

shell.open();

while(!shell.isdisposed())

} display.dispose();

}}

遍歷選單項

遍歷任何窗體的menuitem 用了兩個多小時 略做修改,就可以實現其他功能,getmenuiteminfo提供的資訊足夠用了 procedure explorermenuitem menuhandle thandle varmenuindex integer menucaptionarray ar...

選單項引數

引數一 選單項 引數二 mf bycommand 表明 引數一 給出了選單項的識別符號。如果mf bycommand和mf position都沒被指定,則mf bycommand為預設標誌。mf byposition 表明 引數一 給出了選單項的以零為基準的相對位置。mf disabled 表明選單...

Android 建立選單項Menu及獲取手機解析度

在activity中覆寫下面兩個方法 建立選單 override public boolean oncreateoptionsmenu menu menu 選單響應 override public boolean onoptionsitemselected menuitem item return ...