//初始化菜单
public void initMenu() throws ParserConfigurationException, SAXException, IOException
{
//加载菜单文件
XmlUtil xml = new XmlUtil("menu.xml");
List<MenuBean> mainMenu = xml.getMenu();
//循环主菜单
for(int i = 0; i < mainMenu.size(); i++)
{
MenuBean menu = mainMenu.get(i);
//设置菜单
setMenu(menu, menuBar);
}
}
/**
* 设置菜单
* @param menu 父菜单
* @param paramMenu 父菜单控件
*/
private void setMenu(MenuBean menu, JComponent paramMenu)
{
//取菜单的子菜单数据
List<MenuBean> itemMenuList = menu.getItemMenu();
int size = itemMenuList.size();
//如果菜单为父菜单或者菜单含有子菜单,则用JMenu对像来add子菜单
if(menu.getName().startsWith("MM_") || size > 0)
{
//新建一个菜单
JMenu itemMenu = new JMenu();
//设置菜单文本
itemMenu.setText(menu.getText());
//加入父菜单
paramMenu.add(itemMenu);
//将父菜单设置为本菜单,以便子菜单可加入本菜单
paramMenu = itemMenu;
}
//如果菜单没有子节点,则用JMenuItem加入父菜单
else
{
//解释同上
JMenuItem itemMenu = new JMenuItem();
itemMenu.setText(menu.getText());
paramMenu.add(itemMenu);
paramMenu = itemMenu;
}
//迭代所有子菜单,如果有子菜单则加入该父菜单
for(int i = 0; i < size; i++)
{
setMenu(itemMenuList.get(i), paramMenu);
}
}
分享到:
相关推荐
1. 在Activity中,首先需要在`onCreateOptionsMenu()`方法中加载XML菜单资源: ```java @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main_menu, menu); ...
1. **重写onCreateOptionsMenu()**:在Activity或Fragment中,我们需要重写此方法来加载XML菜单资源。 ```java @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu...
首先,要使用Android菜单,我们需要在布局文件(如`activity_main.xml`)中不直接添加菜单元素,因为菜单通常在活动中动态生成。菜单的定义主要在`res/menu`目录下的XML文件中完成,例如`menu_main.xml`。在这个文件...
"用户界面1-(菜单1)"这个主题主要关注的是如何在Android应用程序中创建和管理菜单,特别是通过资源文件和编程方式来实现。这里我们将深入探讨这两个方面,并且结合"myChapter(menu1)"中的实践案例来阐述相关知识点。...
- 显示:在Activity的`onCreateOptionsMenu(Menu menu)`方法中加载XML菜单,`onOptionsItemSelected(MenuItem item)`处理菜单项的点击事件。 3. **上下文菜单(ContextMenu)** - 注册:在Activity中重写`...
1. 在`res/menu/main_menu.xml`中定义菜单布局: ```xml android:id="@+id/action_item1" android:title="一级菜单项1"/> android:id="@+id/action_item2" android:title="一级菜单项2"/> ``` 2. 在`...
在IT行业中,CSS(Cascading Style Sheets)是一种用于描述HTML或XML(包括SVG、MathML等各种XML方言)文档样式的样式表语言。这个“12c.03.01_xbox_animation_main”看起来像是一个项目或者教程的命名,可能涉及到...
在Android应用开发中,菜单栏是用户界面的重要组成部分,提供了用户与应用交互的入口。...理解并熟练运用这三种菜单,能帮助开发者构建更易用、功能丰富的Android应用。在实际开发中,可以根据需求灵活选择和组合使用。
-- menu/main.xml --> android:id="@+id/action_about" android:orderInCategory="100" android:title="@string/action_about"/> ``` 在Activity中解析并显示: ```java @Override public boolean ...
在Android应用开发中,上下文菜单(Context Menu)、选项菜单(OptionsMenu)和子菜单(Submenu)是三种重要的交互方式,用于提供用户与应用界面的...在实际项目中,结合具体需求灵活运用这些菜单类型,将使应用更加人性化。
为了使菜单图标显示出来,我们通常会在`res/drawable`目录下创建对应的SVG或PNG图标文件,并在XML菜单中引用它们,如示例中的`@drawable/ic_add`等。 在实际项目中,你可能会遇到更复杂的需求,比如动态改变菜单项...
在Android应用开发中,自定义菜单是提升用户体验和界面个性化的重要手段。本示例"android menu自定义菜单 Demo...研究这个Demo,开发者可以学习到如何在自己的项目中灵活运用自定义菜单,提升应用的交互性和用户体验。
在XML菜单定义中,我们可以为菜单项添加子菜单: ```xml android:id="@+id/submenu_item1" android:title="子菜单项1"/> android:id="@+id/submenu_item2" android:title="子菜单项2"/> ``` 子...
1. 选项菜单(Option Menu) 选项菜单是Android应用中最常见的菜单类型,通常在屏幕的右上角以三个点表示(Overflow Menu)。它包含了与整个应用程序相关的动作或选项。要创建选项菜单,开发者需要在`res/menu`目录下...
在XML菜单资源中,使用`<group>`和`<menu>`标签来创建子菜单。 5. **通知栏菜单(Notification Actions)** 通知栏菜单允许用户在通知中执行操作,如直接回复消息或关闭警报。通过在`NotificationCompat.Builder`中...
2. **菜单资源**:菜单项通常定义在`res/menu`目录下的XML文件中,如`main_menu.xml`。每个菜单项是一个`<item>`标签,可以设置图标、标题、快捷键等属性。 3. **菜单的创建和显示**:在Activity中,通过重写`...
在Android中,菜单资源通常存储在`res/menu`目录下的XML文件中,例如`main_menu.xml`。XML文件内可以定义各种菜单项,包括其ID、文字、图标以及触发的事件等。通过`MenuInflater`类的`inflate`方法,可以将XML定义的...
1. **定义菜单资源**:在res/menu目录下创建XML文件,例如`main.xml`,来定义菜单项。每个菜单项由`<item>`标签表示,可以设置`title`(菜单项文字)、`icon`(图标)等属性。例如: ```xml android:id="@+id/...
`getMenuInflater().inflate()`方法用于将XML定义的菜单加载到内存中,`R.menu.main_menu`是对应的菜单资源ID。 当用户点击菜单项时,系统会调用`onOptionsItemSelected(MenuItem item)`方法。在这个方法里,你可以...
`getMenuInflater()`方法返回一个`MenuInflater`对象,用于将XML菜单资源填充到`Menu`对象中。 3. 处理菜单项的点击事件: 通过重写`onOptionsItemSelected(MenuItem item)`方法,我们可以为每个菜单项添加点击...