⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 menudemo.java

📁 这是《Java案例精粹150例(上册)》一书配套的源代码。
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class MenuDemo extends JApplet {
	JTextField t = new JTextField(15);  //建立单行文本域
	ActionListener al = new ActionListener(){
		public void actionPerformed(ActionEvent e){
			t.setText(((JMenuItem)e.getSource()).getText());
		}
	};
	JMenu[] menus = { new JMenu("文件"),
			          new JMenu("编辑"),
					  new JMenu("帮助")};
	JMenuItem[] items = { 
		new JMenuItem("新建"), new JMenuItem("撤销"),
		new JMenuItem("帮助主题"), new JMenuItem("保存"),
		new JMenuItem("剪切"),new JMenuItem("查找"),
		new JMenuItem("退出"),new JMenuItem("复制"),
		new JMenuItem("关于") };
	JPopupMenu popup = new JPopupMenu(); // 定义一个弹出式菜单
	
	public void init(){
		for(int i = 0; i < items.length; i++){
            //为每一个菜单项增加监听器
			items[i].addActionListener(al);  
			// 将每个菜单项添加到各自的菜单中
			menus[i%3].add(items[i]);
		}
	    JMenuBar mb = new JMenuBar();
	    for(int i = 0; i < menus.length; i++){
	    	//将每个菜单添加到菜单控制栏中
		    mb.add(menus[i]);
		    setJMenuBar(mb);
	    }
	    Container cp = getContentPane();
	    // 设定内容窗格的布局控制为FlowLayout格式
	    cp.setLayout(new FlowLayout());
	    cp.add(t);
	    // 为弹出式菜单添加菜单项,和监视器
	    JMenuItem m = new JMenuItem("最小化");
	    popup.add(m);
	    m.addActionListener(al);
	    popup.addSeparator(); // 在菜单的末尾添加分隔空隙
	    m = new JMenuItem("最大化");
	    popup.add(m);
	    m.addActionListener(al);
	    PopupListener pl = new PopupListener();
	    addMouseListener(pl);  // 将弹出菜单事件添加到鼠标事件处理模式中
	}
	
	class PopupListener extends MouseAdapter{
		public void mousePressed(MouseEvent e){
			maybeShowPopup(e);
		}
		
		public void mouseReleased (MouseEvent e){
			maybeShowPopup(e);
		}
		
		private void maybeShowPopup(MouseEvent e){
			if(e.isPopupTrigger()){ 
				// 如果鼠标右键是弹出式菜单则在当前鼠标位置显示该菜单
				popup.show(e.getComponent(),e.getX(),e.getY());
			}
		}
	}
	
	public static void main(String args[]) {
		JApplet applet = new MenuDemo();
		// 创建一个Frame,将applet添加到frame中
		JFrame frame = new JFrame("Menu Demo");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.getContentPane().add(applet);
		applet.init();
		applet.start();
		frame.pack();
		frame.setVisible(true);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -