swing13_14.java

来自「很有用的课件」· Java 代码 · 共 132 行

JAVA
132
字号
/**
 * ClassName: Swing13_14.class
 * Description: 菜单
 * Copyright:    Copyright (c) 2002
 * Company: 中国青年出版社
 * @author: Hong Yi
 * @version 1.0
 */

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;

class MyFrame extends JFrame
   implements ActionListener
{
	public MyFrame()
    {
	    setTitle("Swing示例程序14");
	    setSize(300, 200);
	    setLocation(100,100);
        addWindowListener(new WindowAdapter()
        {
			public void windowClosing(WindowEvent e)
            {  System.exit(0);
            }
         });

         myPanel = new MyPanel();
         getContentPane().add(myPanel, "Center");

		 //新建一个菜单栏
		 JMenuBar menuBar = new JMenuBar();
		 setJMenuBar(menuBar);
		 //新建一个菜单对象
		 JMenu fileMenu = new JMenu("File");
		 //添加一个菜单项
		 fileMenu.add(new JMenuItem("New"));
		 //添加一个子菜单
		 JMenu openMenu = new JMenu("Open");
		 openMenu.add(new JMenuItem("TxtFile"));
		 openMenu.add(new JMenuItem("DocFile"));

		 JMenuItem javaFileItem = new JMenuItem("JavaFile");
		 openMenu.add(javaFileItem);
		 javaFileItem.addActionListener(this);

		 fileMenu.add(openMenu);
		 menuBar.add(fileMenu);

		 //新建一个菜单
		 JMenu findMenu = new JMenu("Find");
		 //设置助记符
		 findMenu.setMnemonic('F');
		 //新建7个不同的菜单项
		 findMenu.add(new JMenuItem());
		 ImageIcon icon = new ImageIcon("images/middle.gif");
		 findMenu.add(new JMenuItem(icon));
		 findMenu.add(new JMenuItem("File"));
		 findMenu.add(new JMenuItem("Directory", icon));

		 JMenuItem pcItem = new JMenuItem("PC", 'P');
		 pcItem.addActionListener(this);
		 findMenu.add(pcItem);
		 //新建一个分隔线
		 findMenu.addSeparator();
		 JMenuItem gp = new JMenuItem("Group");
		 //为group菜单项增加快捷键
		 gp.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_G, InputEvent.CTRL_MASK));
		 gp.addActionListener(this);
		 findMenu.add(gp);
		 menuBar.add(findMenu);
	 }

		public void actionPerformed(ActionEvent evt)
		{
			if (evt.getSource() instanceof JMenuItem)
				//判断事件源是否为菜单项
			{
				String itemName = evt.getActionCommand();
				if (itemName.equals("JavaFile"))
				{
					myPanel.setMsg("You've pressed menu : JavaFile");
				}
				else if (itemName.equals("PC"))
				{
					myPanel.setMsg("You've pressed menu : PC");
				}
				else if (itemName.equals("Group"))
				{
					myPanel.setMsg("You've pressed menu : Group");
				}
			}
		}

		private MyPanel myPanel;
}

class MyPanel extends JPanel
{
	public MyPanel()
	{
		szShowMsg = "";
	}

	public void setMsg(String szMsg)
	{
		szShowMsg = szMsg;
		repaint();
	}

	//绘制信息
	public void paintComponent(Graphics g)
    {
 	    super.paintComponent(g);
		g.drawString(szShowMsg, 20, 20);
   }

   private String szShowMsg;

}

public class Swing13_14
{
	public static void main(String[] args)
    {
		JFrame frame = new MyFrame();
        frame.setVisible(true);
    }
}

⌨️ 快捷键说明

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