19.菜单

效果:

 

 

package com.lvshitech.gui;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.BorderFactory;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

public class JMenuDemo extends JFrame implements ActionListener {
	
	JLabel jl = new JLabel("请选择菜单:", JLabel.CENTER);
	JMenuItem aaMenuItem, baMenuItem;
	
	public JMenuDemo() {
		super("使用JMenu");
		Container container = getContentPane();
		
		// 创建MenuBar
		JMenuBar aMenuBar = new JMenuBar();
		Icon appleIcon = new ImageIcon("images/apple.jpg");
		Icon bananaIcon = new ImageIcon("images/banana.jpg");
		Icon catIcon = new ImageIcon("images/cat.jpg");
		Icon dogIcon = new ImageIcon("images/dog.jpg");
		
		// 创建Menu
		JMenu aMenu = new JMenu("水果");
		JMenu bMenu = new JMenu("动物");
		aMenu.addSeparator();
		
		// 创建Menu子菜单
		JMenuItem aaMenuItem = new JMenuItem("苹果", appleIcon);
		JMenuItem abMenuItem = new JMenuItem("香蕉", bananaIcon);
		JMenuItem baMenuItem = new JMenuItem("小猫", catIcon);
		JMenuItem bbMenuItem = new JMenuItem("小狗", dogIcon);
		
		// 各子菜单项的触发事件
		aaMenuItem.addActionListener(this);
		abMenuItem.addActionListener(this);
		baMenuItem.addActionListener(this);
		bbMenuItem.addActionListener(this);
		
		// 添加到Menu
		aMenu.add(aaMenuItem);
		aMenu.add(abMenuItem);
		bMenu.add(baMenuItem);
		bMenu.add(bbMenuItem);
		
		// 整体添加到MenuBar
		aMenuBar.add(aMenu);
		aMenuBar.add(bMenu);
		
		aMenuBar.setBorder(BorderFactory.createEmptyBorder(3, 3, 3, 3));
		jl.setBorder(BorderFactory.createEmptyBorder(20, 3, 20, 3));
		
		container.add(aMenuBar);
		container.add(jl, BorderLayout.SOUTH);
	}
	
	// 监听器接口实现
	@Override
	public void actionPerformed(ActionEvent e) {
		JMenuItem item = (JMenuItem) e.getSource();
		jl.setText("选择了菜单:" + item.getText());
		jl.setHorizontalAlignment(JLabel.CENTER);
	}
	
	public static void main(String[] args) {
		JFrame frame = new JMenuDemo();
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.pack();
		frame.setVisible(true);
	}
}

 

posted @ 2018-01-16 23:00  半生戎马,共话桑麻、  阅读(101)  评论(0)    收藏  举报
levels of contents