菜单由 Swing 中的 JMenu 类实现,可以包含多个菜单项和带分隔符的菜单。在菜单中,菜单项由 JMenuItem 类表示,分隔符由 JSeparator 类表示。
菜单本质上是带有关联 JPopupMenu 的按钮。当按下“按钮”时,就会显示 JPopupMenu。如果“按钮”位于 JMenuBar 上,则该菜单为顶层窗口。如果“按钮”是另一个菜单项,则 JPopupMenu 就是“下拉”菜单。
JMenu 类的常用方法
创建菜单常用构造方法有两个:JMenu() 和 JMenu(String s)。第一个构造方法创建一个无文本的 JMenu 对象,第二个构造方法创建一个带有指定文本的 JMenu 对象。JMenu 类的常用方法如表 1 所示。
表1 JMenu类的常用方法
方法名称
说明
add(Action a)
创建连接到指定 Action 对象的新菜单项,并将其追加到此菜单的末尾
add(Component c)
将某个组件追加到此菜单的末尾
add(Component c,int index)
将指定组件添加到此容器的给定位置
add(JMenuItem menultem)
将某个菜单项追加到此菜单的末尾
add(String s)
创建具有指定文本的新菜单项,并将其追加到此菜单的末尾
addSeparator()
将新分隔符追加到菜单的末尾
doCliclc(int pressTime)
以编程方式执行“单击”操作
getDelay()
返回子菜单向上或向下弹出前建议的延迟(以毫秒为单位)
getltem(int pos)
返回指定位置的 JMenuItem
getItemCount()
返回菜单上的项数,包括分隔符
getMenuComponent(int n)
返回位于位置 n 的组件
getMenuComponents()
返回菜单子组件的 Component 数组
getSubElements()
返回由 MenuElement 组成的数组,其中包含此菜单组件的子菜单
insert(JMenuItem mi,int pos)
在给定位置插入指定的 JMenuitem
insert(String s,pos)
在给定位置插入具有指定文本的新菜单项
insertSeparator(int index)
在指定的位置插入分隔符
isMenuComponent(Component c)
如果在子菜单层次结构中存在指定的组件,则返回 true
isPopupMenuVisible()
如果菜单的弹出窗口可见,则返回 rue
isSelected()
如果菜单是当前选择的(即高亮显示的)菜单,则返回 true
isTopLevelMenu()
如果菜单是“顶层菜单”(即菜单栏的直接子级),则返回 true
setDelay(int d)
设置菜单的 PopupMenu 向上或向下弹出前建议的延迟
setMenuLocation(int x,int y)
设置弹出组件的位置
setPopupMenuVisible(boolean b)
设置菜单弹出的可见性
setSelected(boole