Java语言编写图形界面菜单栏

Java语言编写图形界面菜单栏

/*菜单(JMenu)是标题栏下面的一行文字部分。菜单时应用程序中最常用的组件。
菜单的组织方式为:一个菜单条JMenuBar包含多个菜单项(JMenuItem)。
本实例:使用JMenu和JMenuItem来创建菜单的例子。
*/
import java.awt.*;
import javax.swing.*;
public class JMenuDemoSimple {
 JFrame mainJFrame;//构造一个框架
 JMenuBar mainMenuBar;//创建一个新的菜单栏
 JMenu fileMenu;//创建菜单栏中的一级菜单
 JMenuItem newItem;//创建一级菜单中的二级菜单
 public JMenuDemoSimple(){
 mainJFrame = new JFrame("菜单演示");  
 mainJFrame.setSize(600,600);//设置窗口大小
 mainJFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭窗口时推出JVM
 createMenu();//调用自定义的方法创建菜单结构
 mainJFrame.setJMenuBar(mainMenuBar);//添加菜单到窗口
 mainJFrame.setVisible(true);//设置窗口是否可见
 }
 public void createMenu(){
  mainMenuBar = new JMenuBar();//创建JMemuBar
  fileMenu = new JMenu("一级菜单");//创建JMenu
   //***************************创建JMenuItem并添加对应的JMenu中
  mainMenuBar.add(fileMenu);                                 //创建 文件菜单 下面的菜单项
  newItem = new JMenuItem("二级菜单");                           
  //*********在菜单栏中添加项目
  fileMenu.add(newItem);   
 }
 public static void main(String[] args) 
 {
  new JMenuDemoSimple();
 }
}

效果图:
在这里插入图片描述

注意:任何时候 setVisible() 一定要放到最后调用,因为代码是按顺序执行的 ,如果你把setVisible() 放在前边,后边再添加其他组件的时候,有可能不会显示出来。

以下时Java菜单栏的简单应用,

import java.awt.*;
import javax.swing.*;
public class JMenuDemo {
 JFrame mainJFrame;//构造一个框架
 Container con; //创建一个容器
 JScrollPane JSPane;//创建一个上下 左右滚动的窗口
 JTextArea text;//创建一个多行纯文本域
 JMenuBar mainMenuBar;//创建一个新的菜单栏
 JMenu fileMenu,editMenu,formatMenu,helpMenu;//创建菜单栏中的菜单选项
 //“文件”菜单下的菜单项
 JMenuItem newItem,openItem,saveItem,saveasItem,pageItem,printItem,exitItem;
 //"编辑"菜单下的菜单项
 JMenuItem undoItem,cutItem,copyItem,pasteItem,findItem,replaceItem,selectallItem;
 //"设置"菜单下的菜单项
 JCheckBoxMenuItem wrapItem;
 JMenuItem fontItem;
 //“帮助”菜单下的菜单项
 JMenuItem aboutItem;
 public JMenuDemo(){
 mainJFrame = new JFrame("菜单使用实例");
 con=mainJFrame.getContentPane();
 text= new JTextArea();
 JSPane = new JScrollPane(text);
 con.add(JSPane,BorderLayout.CENTER);
 mainJFrame.setVisible(true);//设置窗口是否可见
 mainJFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭窗口时推出JVM
 createMenu();                        //调用自定义的方法创建菜单结构
 mainJFrame.setJMenuBar(mainMenuBar);//添加菜单到窗口
 mainJFrame.setSize(400,400);//设置窗口大小
 }
public void createMenu(){
  mainMenuBar = new JMenuBar();//创建JMemuBar
  fileMenu = new JMenu("文件");//创建四个JMenu
  editMenu = new JMenu("编辑");
  formatMenu= new JMenu("格式");
  helpMenu = new JMenu("帮助");
   //***************************创建JMenuItem并添加对应的JMenu中
  mainMenuBar.add(fileMenu);                                 
  //创建 文件菜单 下面的菜单项
  newItem = new JMenuItem("新建");                           
  openItem = new JMenuItem("打开");
  saveItem = new JMenuItem("保存..");
  saveasItem= new JMenuItem("另存为..");
  pageItem = new JMenuItem("页面设置..");
  printItem = new JMenuItem("打印..");
  exitItem = new JMenuItem("退出");
  //*********在菜单栏中添加项目
  fileMenu.add(newItem);  
  fileMenu.add(openItem);
  fileMenu.add(saveItem);
  fileMenu.add(saveasItem);
  fileMenu.addSeparator();
  fileMenu.add(pageItem);
  fileMenu.add(printItem);
  fileMenu.addSeparator();
  fileMenu.add(exitItem);
  
  mainMenuBar.add(editMenu);                                  
  //创建 编辑菜单 下面的菜单项
  undoItem = new JMenuItem("撤销");
  cutItem = new  JMenuItem("剪切");
  copyItem = new JMenuItem("复制");
  pasteItem = new JMenuItem("粘贴");
  findItem = new JMenuItem("查找");
  replaceItem = new JMenuItem("替换");
  selectallItem = new JMenuItem ("全选");
  //*********在菜单栏中添加项目
  editMenu.add(undoItem);
  editMenu.addSeparator();
  editMenu.add(cutItem);
  editMenu.add(copyItem);
  editMenu.add("pasteItem");
  editMenu.addSeparator();
  editMenu.add(findItem);
  editMenu.add(replaceItem);
  editMenu.addSeparator();
  editMenu.add(selectallItem);
  
  mainMenuBar.add(formatMenu);                                
  //创建 格式菜单 下面的菜单项
  wrapItem = new JCheckBoxMenuItem("自动换行");
  fontItem = new JMenuItem("设置字体");
  //*********在菜单栏中添加项目
  formatMenu.add(wrapItem);
  formatMenu.add(fontItem);
  
  mainMenuBar.add(helpMenu);
  //创建 格式菜单 下面的菜单项
  aboutItem = new JMenuItem("关于");
  //*********在菜单栏中添加项目
  helpMenu.add(aboutItem);
  
 }
 
public static void main(String[] args) 
 {
  new JMenuDemo();
 }
}

效果图:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 9
    点赞
  • 101
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
记事本各个功能都有,与电脑自带笔记本一模一样,里面是完整的代码,能够运行void init(){ //建立一个菜单 menubar=new JMenuBar(); //建立文件菜单项 menu=new JMenu("文件(F)"); menubar.add(menu); setJMenuBar(menubar); itemNew=new JMenuItem("新建",new ImageIcon("images//a.gif")); itemOpen=new JMenuItem("打开"); itemSave=new JMenuItem("保存"); itemSaveAs=new JMenuItem("另存为"); itemPage=new JMenuItem("页面设置"); itemPrint=new JMenuItem("打印 "); itemExit=new JMenuItem("退出"); menu.add(itemNew); menu.add(itemOpen); menu.add(itemSave); menu.add(itemSaveAs); menu.add(itemPage); menu.add(itemPrint); menu.add(itemExit); itemNew.addActionListener(this); itemNew.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK)); itemOpen.addActionListener(this); itemOpen.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK)); itemSave.addActionListener(this); itemSave.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK)); itemSaveAs.addActionListener(this); itemPage.addActionListener(this); itemPrint.addActionListener(this); itemPrint.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK)); itemExit.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { if(lblStatus.getText().equals("已修改")){ int confirm=JOptionPane.showConfirmDialog(null, "文件已修改,要保存吗?"); if(confirm==JOptionPane.OK_OPTION) save(); else if(confirm==JOptionPane.CANCEL_OPTION) return; else if(confirm==JOptionPane.CLOSED_OPTION) return; } System.exit(0); } }); itemExit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,InputEvent.CTRL_MASK));

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大脑经常闹风暴@小猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值