ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Swing学习(2) - 下拉菜单(JMenuBar、JMenu、JMenuItem)、弹出式菜单(jpopupMenu)

2019-07-22 16:37:07  阅读:368  来源: 互联网

标签:JMenuItem public add NormalFont Swing setFont new 下拉菜单 弹出式


基本知识

1.下拉菜单

  • JMenuBar菜单栏
	private JMenuBar jmenuMain;
  • JMenu一级菜单
	private JMenu jmenuEle;
	jmenuEle = new JMenu("选择");
	jmenuEle.setBorder(new TitledBorder(" "));    //加上边框
	jmenuEle.setFont(NormalFont);
	jmenuEle.setForeground(menuColor);
	jmenuEle.addSeparator();    //分割线
	jmenuEle.add(jitemExit);
  • JMenuItem菜单选项
		JMenuItem jitemYes = new JMenuItem("确认");
		JMenuItem jitemExit = new JMenuItem("退出");
		JMenuItem jitemAdd = new JMenuItem("添加");
		jitemYes.setFont(NormalFont);
		jitemExit.setFont(NormalFont);
		jitemAdd.setFont(NormalFont);

2.弹出式菜单

		JPopupMenu jpopupMenu = new JPopupMenu();
		JMenu jmenuTan = new JMenu("弹一弹");
		jmenuTan.setFont(topicFont);
		jmenuTan.setForeground(menuColor);
		itemOne = new JMenuItem("弹 ~ 弹一下");
		itemTWO = new JMenuItem("弹出来了");
		itemOne.setFont(NormalFont);
		itemTWO.setFont(NormalFont);
		itemTHREE.setFont(NormalFont);
		itemFOUR.setFont(NormalFont);
		jmenuTan.add(itemOne);
		jmenuTan.add(itemTWO);
		jpopupMenu.add(jmenuTan);

简单举例代码

基本控件

// 接口 
public interface IMecView { 
	public static final Font topicFont = new Font("华文仿宋",Font.BOLD,35);
	public static final Font NormalFont = new Font("华文仿宋",Font.BOLD,25);
	public static final Font smallFont = new Font("华文仿宋",Font.BOLD,20);
	public static final Color TopicFontColor = new Color(255, 128,128);
	public static final Color JbtnColor = new Color(159, 51,116);
	public static final Color menuColor = new Color(69,135,160);
	
	public static final int topicSize = topicFont.getSize();
	public static final int Normalize = NormalFont.getSize();
	public static final int smallSize = smallFont.getSize();
	
	public void init();
	public void reinit();
	public void dealAction();
	public void showView();
	public void closeView();
	
	default void Viewinit() {
		
		
		init();
		reinit();
		dealAction();
	}
}

// 上面接口的实现类
public class MenuStudy implements IMecView {
	private JFrame jframMain;
	
	private JMenuBar jmenuMain;
	private JMenu jmenuFont;
	private JMenu jmenuSports;
	private JMenu jmenuEle;
	
	
	private JLabel jlbltip;
	
	private JPopupMenu jpopupMenu;
	
	public MenuStudy() {
		Viewinit();
	}

	@Override
	public void init() {
		jframMain = new JFrame("~ MenuStudy ~");
		jframMain.setSize(800, 800);
		jframMain.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		jframMain.setLocationRelativeTo(null);
		jframMain.setLayout(new BorderLayout());
		jframMain.setResizable(false);
		
		jmenuMain = new JMenuBar();
		
		jmenuEle = new JMenu("选择");
		jmenuEle.setBorder(new TitledBorder(" "));
		jmenuEle.setFont(NormalFont);
		jmenuEle.setForeground(menuColor);
		JMenuItem jitemYes = new JMenuItem("确认");
		JMenuItem jitemExit = new JMenuItem("退出");
		JMenuItem jitemAdd = new JMenuItem("添加");
		jitemYes.setFont(NormalFont);
		jitemExit.setFont(NormalFont);
		jitemAdd.setFont(NormalFont);
		jmenuEle.add(jitemAdd);
		jmenuEle.add(jitemYes);
		jmenuEle.addSeparator();    //分割线
		jmenuEle.add(jitemExit);
		jmenuMain.add(jmenuEle);
		
		jmenuFont = new JMenu("字体");
		jmenuFont.setBorder(new TitledBorder(" ")); //加上边框
		JMenuItem itemOne = new JMenuItem("宋体");
		JMenuItem itemTWO = new JMenuItem("楷体");
		JMenuItem itemTHREE = new JMenuItem("华文仿宋");
		JMenuItem itemFOUR = new JMenuItem("微软雅黑");
		jmenuFont.setFont(NormalFont);
		jmenuFont.setForeground(menuColor);
		itemOne.setFont(NormalFont);
		itemTWO.setFont(NormalFont);
		itemTHREE.setFont(NormalFont);
		itemFOUR.setFont(NormalFont);
		jmenuFont.add(itemOne);
		jmenuFont.add(itemTWO);
		jmenuFont.add(itemTHREE);
		jmenuFont.add(itemFOUR);
		jmenuMain.add(jmenuFont);
		
		
		jmenuSports = new JMenu("运动");
		jmenuSports.setBorder(new TitledBorder(" "));
		itemOne = new JMenuItem("游泳");
		itemTWO = new JMenuItem("潜水");
		itemTHREE = new JMenuItem("旅行");
		itemFOUR = new JMenuItem("唱歌");
		jmenuSports.setFont(NormalFont);
		jmenuSports.setForeground(menuColor);
		itemOne.setFont(NormalFont);
		itemTWO.setFont(NormalFont);
		itemTHREE.setFont(NormalFont);
		itemFOUR.setFont(NormalFont);
		jmenuSports.add(itemOne);
		jmenuSports.add(itemTWO);
		jmenuSports.add(itemTHREE);
		jmenuSports.add(itemFOUR);
		jmenuMain.add(jmenuSports);
		
		jlbltip = new JLabel("在界面任意处点击!");
		jlbltip.setFont(topicFont);
		jlbltip.setForeground(TopicFontColor);
		jlbltip.setHorizontalAlignment(JLabel.CENTER);
		jframMain.add(jlbltip);
		
		jpopupMenu = new JPopupMenu();
		JMenu jmenuTan = new JMenu("弹一弹");
		jmenuTan.setFont(topicFont);
		jmenuTan.setForeground(menuColor);
		itemOne = new JMenuItem("弹 ~ 弹一下");
		itemTWO = new JMenuItem("弹出来了");
		itemOne.setFont(NormalFont);
		itemTWO.setFont(NormalFont);
		itemTHREE.setFont(NormalFont);
		itemFOUR.setFont(NormalFont);
		jmenuTan.add(itemOne);
		jmenuTan.add(itemTWO);
		jpopupMenu.add(jmenuTan);
		
		jframMain.setJMenuBar(jmenuMain);
		
	}

	@Override
	public void reinit() {
	}

	@Override
	public void dealAction() {
		jframMain.addMouseListener(new MouseAdapter() {

			@Override
			public void mouseClicked(MouseEvent e) {
				jpopupMenu.show(jframMain, e.getX(), e.getY());
			}
			
		});
		
	}

	@Override
	public void showView() {
		jframMain.setVisible(true);
	}

	@Override
	public void closeView() {
		jframMain.dispose();
	}
}


测试代码

public class TestForMenu {
	public static void main(String[] args) {
		MenuStudy menu = new MenuStudy();
		menu.showView();
	}
	
}

效果显示
在这里插入图片描述

标签:JMenuItem,public,add,NormalFont,Swing,setFont,new,下拉菜单,弹出式
来源: https://blog.csdn.net/CactusStory_/article/details/96869189

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有