java gui设计菜单组件_java-----------GUI菜单设计

0818b9ca8b590ca3270a3433284dd417.png

一、 制作一个可用的菜单系统,一般需要经过下面几个步骤

Step 1创建一个JMenuBar对象并将其放置在一个JFrame中

Step 2创建JMenu对象

Step 3创建JMenuItem对象并将其添加到JMenu对象中

Step 4把JMenu对象添加到JMenuBar中

上面这几步主要是创建菜单的结构,如果要使用菜单所指出的功能,则必须要为菜单项注册监听者,并在监听者提供的事件处        理程序中写入相应的代码。

二、代码实现

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

@SuppressWarnings("serial")

public class MainFrame1 extends JFrame

{

Container container;

public MainFrame1()

{

this.setTitle("测试菜单栏");

container = this.getContentPane();

container.setLayout(new BorderLayout());

JMenuBar menuBar = new JMenuBar();

buildMainMenu(menuBar);

this.setJMenuBar(menuBar);

this.setVisible(true);

this.setSize(600,450);

}

protected void buildMainMenu(JMenuBar menuBar)

{

JMenu fileMenu = new JMenu("文件(F)");//第一个菜单

JMenuItem exitMenuItem = new JMenuItem("退出");

exitMenuItem.addActionListener(new ExitActionListener());

fileMenu.add(exitMenuItem);

menuBar.add(fileMenu);

JMenu libMenu = new JMenu("馆藏检索(B)");//第二个菜单

libMenu.setMnemonic(KeyEvent.VK_B);//给菜单定义助记键

JMenuItem libMenuItem = new JMenuItem("书目检索");

JMenuItem myBorrowMenuItem = new JMenuItem("我的借阅");

libMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L,ActionEvent.CTRL_MASK));//设定快捷键

libMenuItem.addActionListener(new BookInLibraryActionListener());

myBorrowMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_M,ActionEvent.CTRL_MASK));//设定快捷键

myBorrowMenuItem.addActionListener(new MyBorrowActionListener());

libMenu.add(libMenuItem);

libMenu.add(myBorrowMenuItem);

menuBar.add(libMenu);

JMenu helpMenu = new JMenu("帮助(H)");//第三个菜单

helpMenu.setMnemonic(KeyEvent.VK_H);

JMenuItem aboutMenuItem = new JMenuItem("关于");

aboutMenuItem.setMnemonic(KeyEvent.VK_A);

aboutMenuItem.addActionListener(new AboutActionListener());

helpMenu.add(aboutMenuItem);

menuBar.add(helpMenu);

}

class BookInLibraryActionListener implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

new JComboBoxDemo();

}

}

class MyBorrowActionListener implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

new JRadioButtonDemo();

}

}

class AboutActionListener implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

String msg = "图书管理系统V1.0\nCopyright(C)2014\n\nBy zhouzixin";

String title = "图书管理系统";

JOptionPane.showMessageDialog(container, msg,title,JOptionPane.INFORMATION_MESSAGE);

}

}

class ExitActionListener implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

dispose();

System.exit(0);

}

}

public static void main(String[] args)

{

new MainFrame1();

}

}

三、效果展示

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java漂亮的树形菜单制作实例(源码),森林状的关系图,文本域,用于显示点击的节点名称,使用了JTree,可以看作是一个jTree的用法演示实例。树形菜单应用广泛,这个Tree制作漂亮,相信会让很多朋友从中学习到实现的方法,效果如演示截图所示。下面是相关的代码片段:   DefaultMutableTreeNode root = new DefaultMutableTreeNode("设置"); //生成根节点   DefaultMutableTreeNode node1=new DefaultMutableTreeNode("常规"); //生成节点一   node1.add(new DefaultMutableTreeNode("默认路径")); //增加新节点到节点一上   node1.add(new DefaultMutableTreeNode("保存选项"));   root.add(node1); //增加节点一到根节点上   root.add(new DefaultMutableTreeNode("界面"));   root.add(new DefaultMutableTreeNode("提示声音"));   root.add(new DefaultMutableTreeNode("打印"));   JTree tree = new JTree(root); //得到JTree的实例   DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer)tree.getCellRenderer(); //得到JTree的Renderer   renderer.setLeafIcon(null); //设置叶子节点图标为空   renderer.setClosedIcon(null); //设置关闭节点的图标为空   renderer.setOpenIcon(null); //设置打开节点的图标为空   tree.addTreeSelectionListener(new TreeSelectionListener() {//选择节点的事件处理   public void valueChanged(TreeSelectionEvent evt) {   TreePath path = evt.getPath(); //得到选择路径   String info=path.getLastPathComponent().toString(); //得到选择的节点名称   jtfInfo.setText(info); //在文本域中显示名称   }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值